Bu çalışma, kaggle’dan alınan Pregnancy(*) adlı, Kaiser Foundation Sağlık Planı’na kayıtlı olan ve San Francisco Doğu Körfez bölgesinde bulunan kadınların 1960 ile 1967 yılları arasındaki gebelikleri ile ilgili özellikleri incelemek amacıyla R programlama kullanılarak hazırlanmıştır. Veri seti 8 değişken ve 1236 gözlemden oluşmaktadır.
(*) https://www.kaggle.com/datasets/debjeetdas/babies-birth-weight
Pregnancy veri setinde, Kaiser Foundation Sağlık Planı’na kayıtlı olan ve San Francisco Doğu Körfez bölgesinde bulunan kadınların 1960 ile 1967 yılları arasındaki gebelikleri yer almaktadır. The Child Health and Development Studies (Çocuk Sağlığı ve Gelişim Çalışmaları) kendini, sağlık ve hastalığın nesiller boyunca nasıl aktarıldığını araştırmaya adamıştır. Oakland, Kaliforniya’daki Kaiser Vakfı Sağlık Planına üye olan ailelerden 1959-1967 yılları arasında bir kadının hamile olduğunu anlayıp CHDS’ye gönüllü olması ile başlamıştır.
CHDS, şimdi yetişkin olan CHDS çocukları ve onların çocukları (CHDS torunları) üzerinde yeni bir takip çalışmaları dönemi başlatmıştır.
Gebelik süreci, anne ve bebeğin sağlığı açısından oldukça önemlidir. Bebeğin doğum ağırlığı; sağlıklı gebelik sürecinin bir göstergesi olup düşük doğum ağırlığı, bebeklerin sağlık sorunları ile karşılaşabileceği riskini arttırır. Bu nedenle, gebelik sürecini anlamak ve bebeğin doğum ağırlığını etkileyebilecek faktörleri incelemek mühimdir.
Veri setimizi import edelim.
pregnancy <- read.csv("PregnancyData.csv")
Veri setine göz atalım.
head(pregnancy)
## case bwt gestation parity age height weight smoke
## 1 1 120 284 0 27 62 100 0
## 2 2 113 282 0 33 64 135 0
## 3 3 128 279 0 28 64 115 1
## 4 4 123 NA 0 36 69 190 0
## 5 5 108 282 0 23 67 125 1
## 6 6 136 286 0 25 62 93 0
• case: Kimlik numarasıdır. Sayısal bir değer olup Nominal türdedir. Unique olarak adlandırılan eşsiz değerlerdir. Veri setinde sıra numarası şeklinde yer alıp herhangi bir bilgi kriteri taşımadığı için analize başlanmadan önce silinecektir.
• bwt: Doğum ağırlığı (ons), Ratio (Oransal) veri türündedir. Uzmanlar tarafından yenidoğanların kilosu, 2.5 - 4.0 kg sınırları ile belirtilerek ortalama 3.2 kg olarak söylenmektedir. Ons cinsinden hesaplayacak olursak ağırlık aralığı 88.185-141.10 ons olmakla birlikte ortalama ağırlık ise 112.876 ons’a karşılık gelmektedir. Araştırma kapsamında, bebeklerin doğum ağırlığı 88-141 ons aralığında ise sağlıklı olarak kabul edilecektir.
Bağımlı değişken olarak kullanılacaktır.
• gestation: Gebelik süresi (gün), Interval (Aralıklı) veri türüne aittir. Sağlıklı bir gebelik 37-42 hafta (259-294 gün) arası sürer. 37 hafta (259 gün) öncesinde olan doğumlar; erken doğum, 42 hafta (294 gün) sonrasında gerçekleşen doğumlar ise geç doğum olarak adlandırılırlar. Erken doğumun bazı nedenleri; daha önceden erken doğum yapmış olmak, gebelikte yeterince kilo alınmaması, gebelikte sigara içimidir. Ayrıca erken doğumlar, düşük doğum ağırlığına neden olabilirler. Geç doğumların ise yüksek oranda kesin bir nedeni yoktur.
• parity: İlk gebelik için ikili gösterge (0 = ilk gebelik), Nominal türdedir. Annenin daha önce gebelik yaşayıp yaşamadığını ifade eder. Önceden gebelik yaşama; bazı metabolik/fizyolojik değişikliklere, yenidoğan bebeğinin kilosuna bile etki gösterebilir.
• age: Annenin yaşı, Ordinaldir. İdeal anne olma yaşı konusunda farklı görüşler ve tercihler vardır. Görüşlerin birleştirilmesi üzerine, analiz kapsamda ideal yaş aralığı 20-35 olarak alınacaktır.
• height: Annenin boyu (inç), Ratio (Oransal) veri türündendir.
• weight: Annenin ağırlığı (pound) ), Ratio (Oransal) veri türündendir.
height & weight: Annenin boyu ve kilosu hem genetik faktörler ile hem de büyüme/gelişme anlamında bebeğin ağırlığını etkileyebilir. Gebelik için ideal boy/kilo sınırı yoktur çünkü bu ölçüler kişiden kişiye farklılık gösterir. Ancak çalışma kapsamında, bu değişkenler için Vücut Kitle İndeksi hesaplanarak ideallik test edilecektir.
• smoke: Annenin sigara içip içmediğine dair ikili gösterge, Nominaldir. Sigara içmenin bilindiği üzere sağlığa, oldukça fazla zararı vardır. Gebelikte sigara kullanımı ise anneye zarar vermekle birlikte bebeğe de zarar verebilir. Özellikle erken doğum riski artabilir.
Veri setinde bulunan bwt değişkeni, bebeklerin doğum ağırlıklarını ifade etmektedir. Araştırma kapsamında; bebeklerin doğum ağırlıklarına etki eden faktörler belirlenecektir. Ayrıca (eğer varsa) bebeklerin doğum ağırlığında etkili olan değişkenler, başka bebeklerin doğum ağırlıklarını tahmin etmek için de kullanılacaktır. Bebeklerin doğum ağırlıklarının tahmini ile; • Bebeğin doğum ağırlığı hakkında daha önceden bilgi edinmek isteyen aileler veya sağlık uzmanlarına, • Sağlık politikalarının geliştirilmesi veya uygulanması için ilgili kurumlara (Örneğin; sigara kullanımını azaltmak veya obeziteyle mücadele etmek), katkı sağlanmış olunacaktır.
Veri setine göz attığımızda “case” değişkeninin unique olarak adlandırılan kimlik numarası olduğunu görmekteyiz. Analizimize herhangi bir katkı sağlamayacağı için o değişkeni veri setinden çıkarabiliriz.
pregnancy$case <- NULL
Analiz kapsamında, herhangi bir değişkenin %15’inden fazlası missing ise, o değişken silinecektir. Bu anlamda veri setinin toplam gözlem sayısına bakalım. Böylece değişkenlerin %15 ini hesaplayabiliriz. Ardından eksik gözlem durumunu kontrol edelim.
Az önce bulunduğu üzere, toplamda 1236 gözlem var. %15’ini hesaplayalım.
1236 * 0.15
## [1] 185.4
185.4 değerini 185 olarak kabul edelim. Herhangi bir değişkenin 185 veya daha fazlası kadar eksik gözlemi var ise o değişkeni, veri setimizden çıkaralım.
Eksik gözlemler bulunan satırları inceleyelim.
pregnancy[!complete.cases(pregnancy),]
## bwt gestation parity age height weight smoke
## 4 123 NA 0 36 69 190 0
## 40 128 282 0 31 65 NA 0
## 43 138 302 0 26 NA NA 1
## 86 129 274 0 29 71 NA 1
## 90 114 NA 0 24 67 113 1
## 94 92 NA 0 31 67 130 0
## 99 128 NA 0 35 62 110 0
## 103 116 286 0 24 61 NA 0
## 111 103 269 0 26 65 NA 1
## 114 134 293 0 21 65 NA 0
## 153 127 336 0 29 NA NA 0
## 155 129 NA 0 23 NA NA 1
## 159 105 281 0 39 61 NA 0
## 170 126 293 0 29 59 110 NA
## 186 131 286 0 34 NA NA 1
## 194 125 302 0 32 61 NA 1
## 205 151 310 0 21 65 NA 0
## 219 90 269 0 26 67 125 NA
## 231 111 284 0 22 NA NA 1
## 243 111 NA 0 27 63 105 1
## 255 130 274 0 26 64 185 NA
## 256 106 275 0 31 65 142 NA
## 312 93 256 0 34 66 NA 1
## 338 131 283 0 31 NA NA 0
## 353 121 284 0 27 63 NA 1
## 361 107 278 1 27 NA 135 0
## 364 107 300 0 19 NA NA 1
## 400 121 286 1 NA NA NA 0
## 429 116 272 0 NA 63 138 1
## 433 115 269 0 30 62 115 NA
## 440 116 315 0 26 NA NA 0
## 444 118 280 0 27 NA NA 1
## 478 119 280 1 25 61 NA 1
## 479 123 272 0 28 NA NA 0
## 482 124 291 0 26 66 NA 0
## 509 119 279 1 20 NA NA 1
## 526 146 277 0 32 NA NA 0
## 601 142 284 0 37 68 155 NA
## 642 151 298 0 37 64 135 NA
## 649 109 271 0 27 61 NA 1
## 651 121 NA 0 31 68 132 0
## 654 120 280 0 29 NA NA 1
## 666 141 292 0 29 62 110 NA
## 672 158 296 0 28 66 140 NA
## 699 141 281 0 28 NA NA 1
## 707 114 NA 0 23 63 116 1
## 740 71 NA 0 19 64 120 0
## 754 111 289 0 26 NA NA 1
## 763 105 261 0 32 NA NA 1
## 848 134 278 0 28 NA 126 1
## 875 135 300 0 25 64 NA 0
## 880 129 NA 1 19 61 110 0
## 883 116 280 1 22 59 NA 1
## 921 108 274 0 28 66 175 NA
## 964 107 NA 0 19 60 118 0
## 972 136 NA 0 36 66 135 0
## 1014 133 274 0 30 63 NA 0
## 1045 117 323 0 26 62 NA 0
## 1178 146 305 0 23 NA NA 0
## 1191 104 275 0 24 NA NA 0
## 1193 124 NA 1 39 65 228 0
## 1216 152 267 0 28 NA 119 1
Eksik gözlemleri kontrol edelim.
colSums(is.na(pregnancy))
## bwt gestation parity age height weight smoke
## 0 13 0 2 22 36 10
Hiçbir değişkenimizin eksik gözlem sayısı 185’i aşmamaktadır. O halde herhangi bir değişkeni silmemize gerek kalmaz. Eksik değerler için değer ataması yapabiliriz.
library(funModeling)
## Zorunlu paket yükleniyor: Hmisc
## Zorunlu paket yükleniyor: lattice
## Zorunlu paket yükleniyor: survival
## Zorunlu paket yükleniyor: Formula
## Zorunlu paket yükleniyor: ggplot2
##
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:base':
##
## format.pval, units
## funModeling v.1.9.4 :)
## Examples and tutorials at livebook.datascienceheroes.com
## / Now in Spanish: librovivodecienciadedatos.ai
df_status(pregnancy)
## variable q_zeros p_zeros q_na p_na q_inf p_inf type unique
## 1 bwt 0 0.00 0 0.00 0 0 integer 107
## 2 gestation 0 0.00 13 1.05 0 0 integer 106
## 3 parity 921 74.51 0 0.00 0 0 integer 2
## 4 age 0 0.00 2 0.16 0 0 integer 30
## 5 height 0 0.00 22 1.78 0 0 integer 19
## 6 weight 0 0.00 36 2.91 0 0 integer 105
## 7 smoke 742 60.03 10 0.81 0 0 integer 2
preg_na <- df_status(pregnancy)
## variable q_zeros p_zeros q_na p_na q_inf p_inf type unique
## 1 bwt 0 0.00 0 0.00 0 0 integer 107
## 2 gestation 0 0.00 13 1.05 0 0 integer 106
## 3 parity 921 74.51 0 0.00 0 0 integer 2
## 4 age 0 0.00 2 0.16 0 0 integer 30
## 5 height 0 0.00 22 1.78 0 0 integer 19
## 6 weight 0 0.00 36 2.91 0 0 integer 105
## 7 smoke 742 60.03 10 0.81 0 0 integer 2
preg_na[,c("variable","p_na")]
## variable p_na
## 1 bwt 0.00
## 2 gestation 1.05
## 3 parity 0.00
## 4 age 0.16
## 5 height 1.78
## 6 weight 2.91
## 7 smoke 0.81
Eksik gözlemlerin sayılarını bulmuştuk. Yukarıdaki tabloda da oranları yer almaktadır. En çok eksik gözlemin weight ve height değişkenlerinde olduğunu görmekteyiz.
Hiçbir değişkenin eksik gözlem oranının %15’i aşmadığı buradan da görülmektedir.
library(mice)
##
## Attaching package: 'mice'
## The following object is masked from 'package:stats':
##
## filter
## The following objects are masked from 'package:base':
##
## cbind, rbind
md.pattern(pregnancy)
## bwt parity age smoke gestation height weight
## 1174 1 1 1 1 1 1 1 0
## 17 1 1 1 1 1 1 0 1
## 3 1 1 1 1 1 0 1 1
## 17 1 1 1 1 1 0 0 2
## 12 1 1 1 1 0 1 1 1
## 1 1 1 1 1 0 0 0 3
## 10 1 1 1 0 1 1 1 1
## 1 1 1 0 1 1 1 1 1
## 1 1 1 0 1 1 0 0 3
## 0 0 2 10 13 22 36 83
bwt ve parity değişkenlerinde eksik gözlem olmadığını buradan da görmekteyiz.
library(VIM)
## Zorunlu paket yükleniyor: colorspace
## Zorunlu paket yükleniyor: grid
## VIM is ready to use.
## Suggestions and bug-reports can be submitted at: https://github.com/statistikat/VIM/issues
##
## Attaching package: 'VIM'
## The following object is masked from 'package:datasets':
##
## sleep
library(ISLR)
aggr(pregnancy,col=c("steelblue1","violet"),numbers = TRUE, sortVars = TRUE,
labels = names(pregnancy),cex.axis = .7, gap = 7,
ylab=c("Eksik Gözlem Oranları","Eksik Gözlem Modeli"))
##
## Variables sorted by number of missings:
## Variable Count
## weight 0.029126214
## height 0.017799353
## gestation 0.010517799
## smoke 0.008090615
## age 0.001618123
## bwt 0.000000000
## parity 0.000000000
Soldaki grafiğe baktığımızda, funModeling ile bulunan oranların grafiğini görürüz. Sağdaki grafik de eksik gözlemlerin modellenmiş halidir.
Eksik gözlem sıraları büyükten küçüğe olacak şekilde; weight - height - gestation - smoke - age değişkenlerindedir.
Eksik gözlemleri doldurmada Karar Ağaçları yöntemi tercih edilecektir.
Karar ağaçları, eksik gözlemleri doldurmak için veri setindeki diğer özelliklerden faydalanır. Bu sayede eksik gözlemler için daha güvenilir sonuçlar sağlanır.
Yapılan analizler ile bwt ve parity değişkenlerinde eksik gözlem olmadığı görülmektedir. Yani eksik gözlem doldurma işlemi, diğer değişkenler için yapılacaktır.
gestation değişkeni
Gestation değişkeni, sayısal olduğu için regresyon yöntemi tercih edilir. Gestation değişkeni, bağımlı değişken gibi alınır. Diğer değişkenler sayesinde eksik gözlemler için en güvenilir sonuçlar bulunmaya çalışılır.
library(Hmisc)
impute_arg <- aregImpute(gestation ~ bwt + parity + age + height + weight + smoke, data = pregnancy, n.impute = 1)
## Iteration 1
Iteration 2
Iteration 3
Iteration 4
# Doldurulan gestation değerleri;
impute_arg$imputed$gestation
## [,1]
## 4 290
## 90 266
## 94 248
## 99 268
## 155 297
## 243 278
## 651 286
## 707 300
## 740 232
## 880 292
## 964 277
## 972 286
## 1193 267
new <- which(is.na(pregnancy$gestation))
# Atama işlemi;
pregnancy[new,]$gestation <- impute_arg$imputed$gestation
age değişkeni
Age değişkeni, sayısal olduğu için regresyon yöntemi tercih edilir. Age değişkeni, bağımlı değişken gibi alınır. Diğer değişkenler sayesinde eksik gözlemler için en güvenilir sonuçlar bulunmaya çalışılır.
library(Hmisc)
impute_arg <- aregImpute(age ~ bwt + parity + gestation + height + weight + smoke, data = pregnancy, n.impute = 1)
## Iteration 1
Iteration 2
Iteration 3
Iteration 4
# Doldurulan age değerleri;
impute_arg$imputed$age
## [,1]
## 400 20
## 429 23
new2 <- which(is.na(pregnancy$age))
# Atama işlemi;
pregnancy[new2,]$age <- impute_arg$imputed$age
height değişkeni
Height değişkeni, sayısal olduğu için regresyon yöntemi tercih edilir. Height değişkeni, bağımlı değişken gibi alınır. Diğer değişkenler sayesinde eksik gözlemler için en güvenilir sonuçlar bulunmaya çalışılır.
library(Hmisc)
impute_arg <- aregImpute(height ~ bwt + parity + gestation + age + weight + smoke, data = pregnancy, n.impute = 1)
## Iteration 1
Iteration 2
Iteration 3
Iteration 4
# Doldurulan age değerleri;
impute_arg$imputed$height
## [,1]
## 43 65
## 153 67
## 155 61
## 186 64
## 231 62
## 338 67
## 361 66
## 364 62
## 400 63
## 440 65
## 444 65
## 479 63
## 509 70
## 526 60
## 654 64
## 699 64
## 754 63
## 763 63
## 848 68
## 1178 60
## 1191 67
## 1216 68
new3 <- which(is.na(pregnancy$height))
# Atama işlemi;
pregnancy[new3,]$height <- impute_arg$imputed$height
weight değişkeni
Height değişkeni, sayısal olduğu için regresyon yöntemi tercih edilir. Weight değişkeni, bağımlı değişken gibi alınır. Diğer değişkenler sayesinde eksik gözlemler için en güvenilir sonuçlar bulunmaya çalışılır.
library(Hmisc)
impute_arg <- aregImpute(weight ~ bwt + parity + gestation + age + height + smoke, data = pregnancy, n.impute = 1)
## Iteration 1
Iteration 2
Iteration 3
Iteration 4
# Doldurulan age değerleri;
impute_arg$imputed$weight
## [,1]
## 40 165
## 43 116
## 86 134
## 103 138
## 111 123
## 114 122
## 153 145
## 155 121
## 159 135
## 186 130
## 194 111
## 205 165
## 231 103
## 312 135
## 338 140
## 353 113
## 364 94
## 400 105
## 440 110
## 444 104
## 478 95
## 479 138
## 482 134
## 509 140
## 526 107
## 649 105
## 654 130
## 699 126
## 754 103
## 763 107
## 875 185
## 883 112
## 1014 112
## 1045 116
## 1178 105
## 1191 120
new4 <- which(is.na(pregnancy$weight))
# Atama işlemi;
pregnancy[new4,]$weight <- impute_arg$imputed$weight
smoke değişkeni
Smoke değişkeni kategorik değişken olduğu için karar ağaçları kullanılır. Smoke değişkeni, bağımlı değişken gibi alınır. Diğer değişkenler sayesinde eksik gözlemler için en güvenilir sonuçlar bulunmaya çalışılır. Değişken, kategorik olduğu için method olarak “class” tercih edilir.
Fakat bu işlemlerden önce ve sonra smoke değişkenini factor olarak tanımlamalıyız.
pregnancy$smoke <- factor(pregnancy$smoke, levels=c(0,1), labels=c("No", "Yes"))
library(rpart)
rtree <- rpart(smoke ~ bwt + parity + gestation + height + age + weight, pregnancy, method = "class")
library(rpart.plot)
rpart.plot(rtree, cex=0.5)
pregnancy$smoke <- ifelse(is.na(pregnancy$smoke), predict(rtree, pregnancy,type="class"), pregnancy$smoke)
pregnancy$smoke <- as.factor(pregnancy$smoke)
Veri setimizin ilk halinde sigara içmeyenler “0” , içenler ise “1” olarak kodlanmıştı. Bu aşama ile eksik gözlemler dolduruldu ancak sigara içmeyenler “1” , içenler ise “2” olarak güncellendi.
Eksik gözlemlerin doldurulduğunu teyit edelim;
colSums(is.na(pregnancy))
## bwt gestation parity age height weight smoke
## 0 0 0 0 0 0 0
Görüldüğü üzere veri setimizdeki eksik değerler doldurulmuştur.
Bu başlık altında; + Değişkenler farklı ölçüm türlerinden tek bir türe çevrilecektir. Örneğin ağırlık için ons ve pound ölçümleri kullanılmıştır. Ağırlıklar kg cinsine, uzunluk ise cm cinsine çevrilecektir. + Kategorik değişkenler etiketlenecektir. + Ham veri için genel bir analiz yapılacaktır.
bwt değişkeni
bwt değişkeni ons cinsindendir. 1 ons yaklaşık 28.35 gram’a eşittir. Bu sebeple bwt değişkeni değerlerini öncelikle 28.35 ile çarparak gram değerlerini bulalım. Ardından 1000’e bölerek kg cinsinden yazalım.
pregnancy$bwt <- (pregnancy$bwt*28.35) / 1000
height değişkeni
height değişkeni inç cinsindendir. 1 inç 2.54 cm olduğu için height değerlerini 2.54 ile çarpıp cm cinsinden yazalım.
pregnancy$height <- pregnancy$height * 2.54
weight değişkeni
weight değişkeni pound cinsindendir. 1 pound 0.45 kg olduğu için weight değerlerini 0.45 ile çarpıp kg cinsinden yazalım.
pregnancy$weight <- pregnancy$weight * 0.45
Veri setimizde yer alan parity ve smoke değişkenleri kategorik değişkenlerdir. Eksik gözlemleri doldururken smoke değişkenini factor olarak belirtmiştik. Şimdi bu işlemi parity için de yapalım.
pregnancy$parity <- factor(pregnancy$parity, levels=c(0,1), labels=c("No", "Yes"))
Eksik gözlemlerin doldurulması aşamasında smoke değişkeninin kategorileri 1 ve 2 olarak güncellenmişti. Değerlere etiketlerini atayalım.
pregnancy$smoke <- factor(pregnancy$smoke, levels=c(1,2), labels=c("No", "Yes"))
Veri setinin genel özetine bakalım.
str(pregnancy)
## 'data.frame': 1236 obs. of 7 variables:
## $ bwt : num 3.4 3.2 3.63 3.49 3.06 ...
## $ gestation: num 284 282 279 290 282 286 244 245 289 299 ...
## $ parity : Factor w/ 2 levels "No","Yes": 1 1 1 1 1 1 1 1 1 1 ...
## $ age : num 27 33 28 36 23 25 33 23 25 30 ...
## $ height : num 157 163 163 175 170 ...
## $ weight : num 45 60.8 51.8 85.5 56.2 ...
## $ smoke : Factor w/ 2 levels "No","Yes": 1 1 2 1 2 1 1 1 1 2 ...
1236 gözlem ve 7 değişken olduğunu görmekteyiz. parity ve smoke değişkenleri factor olup diğer değişkenler numeric türündedir.
Tüm nicel değişkenlerin histogramlarına ve boxplotlarına kısaca göz atalım.
plot_num(pregnancy)
Histogramlara göz atıldığında, normale en yakın dağılımın bwt ve height değişkenleri için olduğunu görmekteyiz. gestation ve weight değişkenlerinin sivri, age değişkeninin ise daha yaygın bir dağılımı var. Ayrıca yine age değişkeninde sağa çarpıklık söz konusu gibi duruyor.
Boxplotlara da bakacak olursak;
boxplot(pregnancy$bwt, pregnancy$gestation, pregnancy$age, pregnancy$height, pregnancy$weight,
main="Boxplots", names=c("bwt", "gestation", "age", "height", "weight"), col="orange")
Elbette tüm boxplotlara birden baktığımız için pek ayrıntılı sonuçlar görememekteyiz. Genel bir youm yapacak olursak, en çok uç değerin gestation ve weight değişkenlerinde olduğu görünmektedir.
Ancak yalnızca histogramlara veya boxplotlara bakarak yorum yapmak pek de doğru olmaz. Bu nedenle değişkenler tek tek, grafikleri ve istatistikleri ile incelenecektir.
Değişkenlerin genel özetlerine bakıp tek tek incelemeye geçelim.
sum_pregnancy <- summary(pregnancy)
Özet istatistikler, deüğişkene göre sırasıyla yorumlanacaktır.
sum_pregnancy
## bwt gestation parity age height
## Min. :1.559 Min. :148.0 No :921 Min. :15.00 Min. :134.6
## 1st Qu.:3.083 1st Qu.:272.0 Yes:315 1st Qu.:23.00 1st Qu.:157.5
## Median :3.402 Median :280.0 Median :26.00 Median :162.6
## Mean :3.390 Mean :279.3 Mean :27.25 Mean :162.7
## 3rd Qu.:3.714 3rd Qu.:288.0 3rd Qu.:31.00 3rd Qu.:167.6
## Max. :4.990 Max. :353.0 Max. :45.00 Max. :182.9
## weight smoke
## Min. : 39.15 No :751
## 1st Qu.: 51.30 Yes:485
## Median : 56.25
## Mean : 57.81
## 3rd Qu.: 62.10
## Max. :112.50
bwt değişkeninin min değeri 1.559 ve max değeri 4.990 kg olarak bulunmuştur.
Uzmanlar tarafından yenidoğanların kilosu, 2.5 - 4.0 kg sınırları ile belirtilerek ortalama 3.2 kg olarak söylenmektedir. Max değer olan 4.990’a baktığımızda, sağlıklı kilo olarak kabul ettiğimiz 4 kg üst sınırın üstünde yer aldığını görmekteyiz. Minimum değer de, doktorların sağlıklı kabu ettiği alt sınırın oldukça altındadır.
Ortalama ve medyan değerleri birbirine yakın değerlerdir. Bu da bize, verinin ortalamaya yakın simetrisi olduğunu gösterebilir.
Çarpıklık ve basıklık değerlerini incelersek;
library(moments)
skewness(pregnancy$bwt)
## [1] -0.1406442
kurtosis(pregnancy$bwt)
## [1] 3.442576
Çapıklık değeri -0.1406442 ve basıklık değeri 3.442576 olarak bulunmuştur. Bu da bize bwt değişkeni dağılımının sivri ve hafif sola çarpık olduğunu söyler.
Ancak emin olmak için histograma da bakalım.
hist(pregnancy$bwt, col = "cadetblue3", main = "Doğum Ağırlığı (kg) Histogramı")
Histograma bakınca, değişkenin gerçekten de normale yakın dağılımı olduğunu görmekteyiz.
Normallik varsayımını incelemek için QQ plot çizelim.
qqnorm(pregnancy$bwt, col = "darkblue", main = "Doğum Ağırlığı (kg) QQ Plot")
qqline(pregnancy$bwt, col = "red")
Q-Q Grafiğinden de değişkenin dağılımının normale oldukça yakın olduğunu görmekteyiz. Gözlemler eğriye oldukça yakınlar. Ancak baş ve uç kısımlarındaki değerlerin incelenmesi gerekmektedir.
library(funModeling)
profiling_num(pregnancy$bwt)
## variable mean std_dev variation_coef p_01 p_05 p_25 p_50
## 1 var 3.390004 0.5170034 0.1525082 2.022773 2.4948 3.083063 3.402
## p_75 p_95 p_99 skewness kurtosis iqr range_98
## 1 3.71385 4.22415 4.62105 -0.1406442 3.442576 0.6307875 [2.0227725, 4.62105]
## range_80
## 1 [2.74995, 4.0257]
bwt değişkeninin ortalamasının yaklaşık 3.39, standart sapmasının yaklaşık 0.517 olduğunu görürüz. variation_coef, varyasyon katsayısıdır. bir değişkenin ortalama değerine göre ne kadar değiştiğini gösterir. Daha spesifik olarak, varyasyon katsayısı, bir değişkenin ortalama değerine göre ne kadar değiştiğini gösterir. Standart sapmanın ortalamaya oranıdır. bwt değeri için bu değer yaklaşık 0.15’dir.
Standart sapmanın yaklaşık olarak 0.517 olması, veri setindeki değerlerin ortalama değerden ne kadar sapma gösterdiği hakkında bilgi verir. Bu değer düşük bir standart sapma olarak yorumlanabilir ve veri setindeki değerlerin birbirine yakın olduğunu gösterir.
Varyasyon katsayısının yaklaşık olarak 0.15 olması, veri setindeki değişkenin dağılımının ortalama değere göre ne kadar değiştiğini ölçer. Bu değer düşük bir varyasyon katsayısı olarak yorumlanabilir ve değişkenin dağılımının stabil ve homojen olduğunu gösterir. Bu nedenle, veri setindeki değerlerin birbirine yakın olduğu sonucuna varılabilir.
p_01 = 2.022773 değeri bwt’nin %1’ine karşılık gelen değerdir. p_05 = 3.08063 değeri bwt’nin %5’ine karşılık gelen değerdir. p_25 = 3.083063 değeri bwt’nin %25’ine karşılık gelen değerdir. Yani 1. çeyrek değeridir. p_50 = 3.402 değeri bwt’nin %50’sine karşılık gelen değerdir. Yani 2. çeyrek değer olup medyana eşittir. p_75 = 3.71385 değeri bwt’nin %75’ine karşılık gelen değerdir. Yani 3. çeyrek değeridir. p_95 = 4.22415 değeri bwt’nin %95’ine karşılık gelen değerdir.
boxplot(pregnancy$bwt , main = "Doğum Ağırlığı (kg) Boxplot", col = "orange")
Boxplot’u incelediğimizde bwt değişkeninin normale oldukça yakın bir dağılımının olduğunu görürüz. Medyan çizgisi, Q1 ve Q3 değerlerini ortalayan bir konumdadır. Ancak uç değerler vardır ve uç değerlerin dağılımı etkileyebileceği göz önünde bulundurulmalıdır.
sum_pregnancy
## bwt gestation parity age height
## Min. :1.559 Min. :148.0 No :921 Min. :15.00 Min. :134.6
## 1st Qu.:3.083 1st Qu.:272.0 Yes:315 1st Qu.:23.00 1st Qu.:157.5
## Median :3.402 Median :280.0 Median :26.00 Median :162.6
## Mean :3.390 Mean :279.3 Mean :27.25 Mean :162.7
## 3rd Qu.:3.714 3rd Qu.:288.0 3rd Qu.:31.00 3rd Qu.:167.6
## Max. :4.990 Max. :353.0 Max. :45.00 Max. :182.9
## weight smoke
## Min. : 39.15 No :751
## 1st Qu.: 51.30 Yes:485
## Median : 56.25
## Mean : 57.81
## 3rd Qu.: 62.10
## Max. :112.50
gestation değişkeninin min değeri 148.0 ve max değeri 353.0 olarak bulunmuştur.
Uzmanlar tarafından sağlıklı bir gebelik süresinin 37-42 hafta (259-294 gün) arası sürmesi gerektiği söylenmektedir. 37 hafta (259 gün) öncesinde olan doğumlar; erken doğum, 42 hafta (294 gün) sonrasında gerçekleşen doğumlar ise geç doğum olarak adlandırılırlar.
Max değer olan 353’e baktığımızda, sağlıklı olarak kabul ettiğimiz 294 gün üst sınırın üstünde yer aldığını görmekteyiz. Ayrıca minimum değer olan 148 değeri de 259 alt sınırının oldukça altındadır.
Ortalama ve medyan değerleri birbirine yakın değerlerdir. Bu da bize, verinin ortalamaya yakın simetrisi olduğunu gösterebilir.
Çarpıklık ve basıklık değerlerini incelersek;
library(moments)
skewness(pregnancy$gestation)
## [1] -0.7819864
kurtosis(pregnancy$gestation)
## [1] 9.487288
Çapıklık değeri -0.7784616 ve basıklık değeri 9.613986 olarak bulunmuştur. Bu da bize gestation değişkeni dağılımının sivri ve sola çarpık olduğunu söyler.
Ancak emin olmak için histograma da bakalım.
hist(pregnancy$gestation, col = "cadetblue3", main = "Gebelik Süresi (Gün) Histogramı")
Histogram, değişkenin oldukça sivri dağılımı olduğu izlenimini vermektedir. Ancak detaylı inceleme yapılmalıdır.
Normallik varsayımını incelemek için QQ plot çizelim.
qqnorm(pregnancy$gestation, col = "darkblue", main = "Gebelik Süresi (Gün) QQ Plot")
qqline(pregnancy$gestation, col = "red")
Q-Q Grafiği, dağılımın hafif kuyruklu olduğu izlenimini vermektedir. Doğrusal olmayan yapıdadır. Ayrıca uç değer kuşkusu da uyandırmaktadır.
library(funModeling)
profiling_num(pregnancy$gestation)
## variable mean std_dev variation_coef p_01 p_05 p_25 p_50 p_75 p_95
## 1 var 279.3026 16.06426 0.05751563 232.35 252 272 280 288 302
## p_99 skewness kurtosis iqr range_98 range_80
## 1 319.65 -0.7819864 9.487288 16 [232.35, 319.65] [262, 296]
gestation değişkeninin ortalamasının yaklaşık 279.33, standart sapmasının yaklaşık 15.98 olduğunu görürüz. Varyasyon katsayısı yaklaşık 0.057’dir
Standart sapmanın yaklaşık olarak 15.98 olması, veri setindeki değerlerin ortalama değerden ne kadar sapma gösterdiği hakkında bilgi verir. Bu değer, ortalamaya bakılınca düşük bir standart sapma olarak yorumlanabilir ve veri setindeki değerlerin birbirine yakın olduğunu gösterir.
Varyasyon katsayısının yaklaşık olarak 0.057 olması, veri setindeki değişkenin dağılımının ortalama değere göre ne kadar değiştiğini ölçer. Bu değer düşük bir varyasyon katsayısı olarak yorumlanabilir ve değişkenin dağılımının stabil ve homojen olduğunu gösterir. Bu nedenle, veri setindeki değerlerin birbirine yakın olduğu sonucuna varılabilir.
p_01 = 233.35 değeri gestation’ın %1’ine karşılık gelen değerdir. p_05 = 252 değeri gestation’ın %5’ine karşılık gelen değerdir. p_25 = 272 değeri gestation’ın %25’ine karşılık gelen değerdir. Yani 1. çeyrek değeridir. p_50 = 280 değeri gestation’ın %50’sine karşılık gelen değerdir. Yani 2. çeyrek değer olup medyana eşittir. p_75 = 288 değeri gestation’ın %75’ine karşılık gelen değerdir. Yani 3. çeyrek değeridir. p_95 = 302 değeri gestation’ın %95’ine karşılık gelen değerdir.
boxplot(pregnancy$gestation , main = "Gebelik Süresi (gün) Boxplot", col = "orange")
Boxplot’u incelediğimizde gestation değişkeninin normale oldukça yakın bir dağılımının olduğunu görürüz. Medyan çizgisi, Q1 ve Q3 değerlerini ortalayan bir konumdadır. Ancak oldukça fazla uç değer vardır ve uç değerlerin dağılımı etkileyebileceği göz önünde bulundurulmalıdır.
sum_pregnancy
## bwt gestation parity age height
## Min. :1.559 Min. :148.0 No :921 Min. :15.00 Min. :134.6
## 1st Qu.:3.083 1st Qu.:272.0 Yes:315 1st Qu.:23.00 1st Qu.:157.5
## Median :3.402 Median :280.0 Median :26.00 Median :162.6
## Mean :3.390 Mean :279.3 Mean :27.25 Mean :162.7
## 3rd Qu.:3.714 3rd Qu.:288.0 3rd Qu.:31.00 3rd Qu.:167.6
## Max. :4.990 Max. :353.0 Max. :45.00 Max. :182.9
## weight smoke
## Min. : 39.15 No :751
## 1st Qu.: 51.30 Yes:485
## Median : 56.25
## Mean : 57.81
## 3rd Qu.: 62.10
## Max. :112.50
parity değişkeni kategorik değişkendir. Annenin daha önce gebelik yaşayıp yaşamadığını ifade eder.
No: İlk gebelik Yes: İlk gebelik değil, anlamına gelir.
Veri setindeki 921 kişinin ilk gebeliğinin bigileri yer alırken ilk gebeliği olmayan 315 kişi vardır.
freq(pregnancy$parity)
## var frequency percentage cumulative_perc
## 1 No 921 74.51 74.51
## 2 Yes 315 25.49 100.00
İlk gebeliği olanlar veri setinin %75.51’ini oluşturuken ilk gebeliği olmayanlar %25.49’unu oluşturmaktadır.
sum_pregnancy
## bwt gestation parity age height
## Min. :1.559 Min. :148.0 No :921 Min. :15.00 Min. :134.6
## 1st Qu.:3.083 1st Qu.:272.0 Yes:315 1st Qu.:23.00 1st Qu.:157.5
## Median :3.402 Median :280.0 Median :26.00 Median :162.6
## Mean :3.390 Mean :279.3 Mean :27.25 Mean :162.7
## 3rd Qu.:3.714 3rd Qu.:288.0 3rd Qu.:31.00 3rd Qu.:167.6
## Max. :4.990 Max. :353.0 Max. :45.00 Max. :182.9
## weight smoke
## Min. : 39.15 No :751
## 1st Qu.: 51.30 Yes:485
## Median : 56.25
## Mean : 57.81
## 3rd Qu.: 62.10
## Max. :112.50
age değişkeninin min değeri 15.00 ve max değeri 45.00 olarak bulunmuştur.
İdeal anne olma yaşı konusunda farklı görüşler ve tercihler vardır. Görüşlerin birleştirilmesi üzerine, analiz kapsamda ideal yaş aralığı 20-35 olarak alınacaktır.
Max değer olan 45’e baktığımızda, sağlıklı olarak kabul ettiğimiz 35 üst sınırın üstünde yer aldığını görmekteyiz. Ayrıca minimum değer olan 15 değeri de 20 alt sınırının altındadır.
Ortalama ve medyan değerleri birbirine yakın değerlerdir. Bu da bize, verinin ortalamaya yakın simetrisi olduğunu gösterebilir.
Çarpıklık ve basıklık değerlerini incelersek;
library(moments)
skewness(pregnancy$age)
## [1] 0.585735
kurtosis(pregnancy$age)
## [1] 2.69848
Çapıklık değeri 0.5823172 ve basıklık değeri 2.693305 olarak bulunmuştur. Bu da bize age değişkeni dağılımının basık ve hafif sağa çarpık olduğunu söyler.
Ancak emin olmak için histograma da bakalım.
hist(pregnancy$age, col = "cadetblue3", main = "Annelerin Yaşları Histogramı")
Histogram, değişkenin sağa çarpık dağılımı olduğunu göstermektedir. Ancak detaylı inceleme yapılmalıdır.
Normallik varsayımını incelemek için QQ plot çizelim.
qqnorm(pregnancy$age, col = "darkblue", main = "Annelerin Yaşları QQ Plot")
qqline(pregnancy$age, col = "red")
Q-Q Grafiğinde öncelikle gürültü göze çarpmaktadır. Bu gürültünün sebebi uç değerler olabilir. Dönüşüm uygulamasından sonra tekrar kontrol sağlanacaktır.
library(funModeling)
profiling_num(pregnancy$age)
## variable mean std_dev variation_coef p_01 p_05 p_25 p_50 p_75 p_95 p_99
## 1 var 27.24595 5.781671 0.2122029 18 19 23 26 31 38 41
## skewness kurtosis iqr range_98 range_80
## 1 0.585735 2.69848 8 [18, 41] [20, 36]
age değişkeninin ortalamasının yaklaşık 27.26, standart sapmasının yaklaşık 5.78 olduğunu görürüz. Varyasyon katsayısı yaklaşık 0.212’dir
Standart sapmanın yaklaşık olarak 5.78 olması, veri setindeki değerlerin ortalama değerden ne kadar sapma gösterdiği hakkında bilgi verir. Bu değer, ortalamaya bakılınca düşük bir standart sapma olarak yorumlanabilir ve veri setindeki değerlerin birbirine yakın olduğunu gösterir. Ancak ilgili değişkenin yaş değişkeni olduğunu ve normal kabul ettiğimiz sınırları göz önünde bulundurursak çok da düşük bir standart sapma değildir.
Varyasyon katsayısının yaklaşık olarak 0.212 olması, veri setindeki değişkenin dağılımının ortalama değere göre ne kadar değiştiğini ölçer. Bu değer çok düşük olmayan (ancak yine de düşük) bir varyasyon katsayısı olarak yorumlanabilir ve değişkenin dağılımının homojene yakın olduğunu gösterir.
p_01 = 18 değeri age’in %1’ine karşılık gelen değerdir. p_05 = 19 değeri age’in %5’ine karşılık gelen değerdir. p_25 = 23 değeri age’in %25’ine karşılık gelen değerdir. Yani 1. çeyrek değeridir. p_50 = 26 değeri age’in %50’sine karşılık gelen değerdir. Yani 2. çeyrek değer olup medyana eşittir. p_75 = 31 değeri age’in %75’ine karşılık gelen değerdir. Yani 3. çeyrek değeridir. p_95 = 38 değeri age’in %95’ine karşılık gelen değerdir.
boxplot(pregnancy$age , main = "Annelerin Yaşları Boxplot", col = "orange")
Boxplot’u incelediğimizde age değişkeninin sağa çarpık dağılımının olduğunu görürüz. Ayrıca 2 tane de uç değer göze çarpmaktadır.
sum_pregnancy
## bwt gestation parity age height
## Min. :1.559 Min. :148.0 No :921 Min. :15.00 Min. :134.6
## 1st Qu.:3.083 1st Qu.:272.0 Yes:315 1st Qu.:23.00 1st Qu.:157.5
## Median :3.402 Median :280.0 Median :26.00 Median :162.6
## Mean :3.390 Mean :279.3 Mean :27.25 Mean :162.7
## 3rd Qu.:3.714 3rd Qu.:288.0 3rd Qu.:31.00 3rd Qu.:167.6
## Max. :4.990 Max. :353.0 Max. :45.00 Max. :182.9
## weight smoke
## Min. : 39.15 No :751
## 1st Qu.: 51.30 Yes:485
## Median : 56.25
## Mean : 57.81
## 3rd Qu.: 62.10
## Max. :112.50
height değişkeninin min değeri 134.6 ve max değeri 182.9 olarak bulunmuştur.
Uzmanlar tarafından anneler için sağlıklı boy ve kilo tanısı net olarak yoktur. Bu sebeple height değişkeninden hareketle vücut kitle indeksi hesaplanıp yorumlacaktır.
Max değer 182.9 min değer 134.6’dır.
Ortalama ve medyan değerleri birbirine oldukça yakın değerlerdir. Bu da bize, verinin ortalamaya yakın simetrisi olduğunu gösterebilir.
Çarpıklık ve basıklık değerlerini incelersek;
library(moments)
skewness(pregnancy$height)
## [1] -0.08052446
kurtosis(pregnancy$height)
## [1] 3.155305
Çapıklık değeri -0.08760216 ve basıklık değeri 3.172033 olarak bulunmuştur. Bu da bize height değişkeni dağılımının sivri ve hafif sola çarpık olduğunu söyler.
Ancak emin olmak için histograma da bakalım.
hist(pregnancy$height, col = "cadetblue3", main = "Annelerin Boyları (cm) Histogramı")
Histogram, değişkenin sivri ve hafif sola çarpık dağılımı olduğunu göstermektedir.
Normallik varsayımını incelemek için QQ plot çizelim.
qqnorm(pregnancy$height, col = "darkblue", main = "Annelerin Boyları (cm) QQ Plot")
qqline(pregnancy$height, col = "red")
Q-Q Grafiğinde öncelikle gürültü göze çarpmaktadır. Bu gürültünün sebebi uç değerler olabilir. Dönüşüm uygulamasından sonra tekrar kontrol sağlanacaktır.
library(funModeling)
profiling_num(pregnancy$height)
## variable mean std_dev variation_coef p_01 p_05 p_25 p_50 p_75
## 1 var 162.6977 6.440109 0.03958328 147.32 152.4 157.48 162.56 167.64
## p_95 p_99 skewness kurtosis iqr range_98 range_80
## 1 172.72 177.8 -0.08052446 3.155305 10.16 [147.32, 177.8] [154.94, 170.18]
height değişkeninin ortalamasının yaklaşık 162.66, standart sapmasının yaklaşık 6.42 olduğunu görürüz. Varyasyon katsayısı yaklaşık 0.039’dur
Standart sapmanın yaklaşık olarak 16.42 olması, veri setindeki değerlerin ortalama değerden ne kadar sapma gösterdiği hakkında bilgi verir. Bu değer, ortalamaya bakılınca düşük bir standart sapma olarak yorumlanabilir ve veri setindeki değerlerin birbirine yakın olduğunu gösterir. Ancak ilgili değişkenin boy değişkeni olduğunu göz önünde bulundurursak çok da düşük bir standart sapma değildir.
Varyasyon katsayısının yaklaşık olarak 0.039 olması, veri setindeki değişkenin dağılımının ortalama değere göre ne kadar değiştiğini ölçer. Bu değer düşük bir varyasyon katsayısı olarak yorumlanabilir ve değişkenin dağılımının stabil ve homojen olduğunu gösterir. Bu nedenle, veri setindeki değerlerin birbirine yakın olduğu sonucuna varılabilir.
p_01 = 147.32 değeri height’in %1’ine karşılık gelen değerdir. p_05 = 152.4 değeri height’in %5’ine karşılık gelen değerdir. p_25 = 157.48 değeri height’in %25’ine karşılık gelen değerdir. Yani 1. çeyrek değeridir. p_50 = 162.56 değeri height’in %50’sine karşılık gelen değerdir. Yani 2. çeyrek değer olup medyana eşittir. p_75 = 167.64 değeri height’in %75’ine karşılık gelen değerdir. Yani 3. çeyrek değeridir. p_95 = 172.72 değeri height’in %95’ine karşılık gelen değerdir.
boxplot(pregnancy$height , main = "Annelerin Boyları (cm) Boxplot", col = "orange")
Boxplot’u incelediğimizde height değişkeninin normale oldukça yakın bir dağılımının olduğunu görürüz. Medyan çizgisi, Q1 ve Q3 değerlerini ortalayan bir konumdadır. Göze çarpan 2 tane de uç değer bulunmaktadır.
sum_pregnancy
## bwt gestation parity age height
## Min. :1.559 Min. :148.0 No :921 Min. :15.00 Min. :134.6
## 1st Qu.:3.083 1st Qu.:272.0 Yes:315 1st Qu.:23.00 1st Qu.:157.5
## Median :3.402 Median :280.0 Median :26.00 Median :162.6
## Mean :3.390 Mean :279.3 Mean :27.25 Mean :162.7
## 3rd Qu.:3.714 3rd Qu.:288.0 3rd Qu.:31.00 3rd Qu.:167.6
## Max. :4.990 Max. :353.0 Max. :45.00 Max. :182.9
## weight smoke
## Min. : 39.15 No :751
## 1st Qu.: 51.30 Yes:485
## Median : 56.25
## Mean : 57.81
## 3rd Qu.: 62.10
## Max. :112.50
weight değişkeninin min değeri 39.15 ve max değeri 112.50 olarak bulunmuştur.
Uzmanlar tarafından anneler için sağlıklı boy ve kilo tanısı net olarak yoktur. Bu sebeple weight değişkeninden hareketle vücut kitle indeksi hesaplanıp yorumlacaktır.
Max değer 112.50 min değer 39.15’dir.
Ortalama ve medyan değerleri birbirine oldukça yakın değerlerdir. Bu da bize, verinin ortalamaya yakın simetrisi olduğunu gösterebilir.
Çarpıklık ve basıklık değerlerini incelersek;
library(moments)
skewness(pregnancy$weight)
## [1] 1.249546
kurtosis(pregnancy$weight)
## [1] 5.822213
Çapıklık değeri 1.245007 ve basıklık değeri 5.77239 olarak bulunmuştur. Bu da bize weight değişkeni dağılımının sivri ve sağa çarpık olduğunu söyler.
Ancak emin olmak için histograma da bakalım.
hist(pregnancy$weight, col = "cadetblue3", main = "Annelerin Ağırlıkları (kg) Histogramı")
Histogram, değişkenin sivri ve sağa çarpık dağılımı olduğunu göstermektedir.
Normallik varsayımını incelemek için QQ plot çizelim.
qqnorm(pregnancy$weight, col = "darkblue", main = "Annelerin Ağırlıkları (kg) QQ Plot")
qqline(pregnancy$weight, col = "red")
Q-Q Grafiği, dağılımın hafif kuyruklu olduğu izlenimini vermektedir. Ayrıca uç değer kuşkusu da uyandırmaktadır.
library(funModeling)
profiling_num(pregnancy$weight)
## variable mean std_dev variation_coef p_01 p_05 p_25 p_50 p_75 p_95
## 1 var 57.81371 9.434347 0.1631853 42.3 45.9 51.3 56.25 62.1 76.1625
## p_99 skewness kurtosis iqr range_98 range_80
## 1 88.9425 1.249546 5.822213 10.8 [42.3, 88.9425000000001] [47.25, 69.75]
weight değişkeninin ortalamasının yaklaşık 57.89, standart sapmasının yaklaşık 9.48 olduğunu görürüz. Varyasyon katsayısı yaklaşık 0.16’dır.
Standart sapmanın yaklaşık olarak 9.48 olması, veri setindeki değerlerin ortalama değerden ne kadar sapma gösterdiği hakkında bilgi verir. Bu değer, ortalamaya bakılınca düşük bir standart sapma olarak yorumlanabilir ve veri setindeki değerlerin birbirine yakın olduğunu gösterir. Ancak ilgili değişkenin kilo değişkeni olduğunu göz önünde bulundurursak çok da düşük bir standart sapma değildir.
Varyasyon katsayısının yaklaşık olarak 0.16 olması, veri setindeki değişkenin dağılımının ortalama değere göre ne kadar değiştiğini ölçer. Bu değer düşük bir varyasyon katsayısı olarak yorumlanabilir ve değişkenin dağılımının stabil ve homojen olduğunu gösterir. Bu nedenle, veri setindeki değerlerin birbirine yakın olduğu sonucuna varılabilir.
p_01 = 42.0075 değeri weight’in %1’ine karşılık gelen değerdir. p_05 = 45.45 değeri weight’in %5’ine karşılık gelen değerdir. p_25 = 51.75 değeri weight’in %25’ine karşılık gelen değerdir. Yani 1. çeyrek değeridir. p_50 = 56.25 değeri weight’in %50’sine karşılık gelen değerdir. Yani 2. çeyrek değer olup medyana eşittir. p_75 = 62.6625 değeri weight’in %75’ine karşılık gelen değerdir. Yani 3. çeyrek değeridir. p_95 = 76.5 değeri weight’in %95’ine karşılık gelen değerdir.
boxplot(pregnancy$weight , main = "Annelerin Ağırlıkları (kg) Boxplot", col = "orange")
Boxplot’u incelediğimizde height değişkeninin sağa çarpık olduğunu görürüz. Ayrıca oldukça fazla uç değer vardır.
sum_pregnancy
## bwt gestation parity age height
## Min. :1.559 Min. :148.0 No :921 Min. :15.00 Min. :134.6
## 1st Qu.:3.083 1st Qu.:272.0 Yes:315 1st Qu.:23.00 1st Qu.:157.5
## Median :3.402 Median :280.0 Median :26.00 Median :162.6
## Mean :3.390 Mean :279.3 Mean :27.25 Mean :162.7
## 3rd Qu.:3.714 3rd Qu.:288.0 3rd Qu.:31.00 3rd Qu.:167.6
## Max. :4.990 Max. :353.0 Max. :45.00 Max. :182.9
## weight smoke
## Min. : 39.15 No :751
## 1st Qu.: 51.30 Yes:485
## Median : 56.25
## Mean : 57.81
## 3rd Qu.: 62.10
## Max. :112.50
smoke değişkeni kategorik değişkendir. Annenin daha önce gebelik yaşayıp yaşamadığını ifade eder.
Annenin sigara içip içmediğini ifade eder. Gebelikte sigara kullanımı ise anneye zarar vermekle birlikte bebeğe de zarar verebilir. Özellikle erken doğum riski artabilir.
No: Sigara içmiyor Yes: Sigara içiyor, anlamına gelir.
Veri setindeki 751 kişinin sigara içmediğinin bigileri yer alırken sigara içen 485 kişi vardır.
freq(pregnancy$smoke)
## var frequency percentage cumulative_perc
## 1 No 751 60.76 60.76
## 2 Yes 485 39.24 100.00
Sigara içmeyenler veri setinin %60.76’sını oluşturuken sigara içenler %39.24’ünü oluşturmaktadır.
Veri setinin %80’ini eğitim (train) ve %20’sini test olarak ayıralım.
Bağımlı değişkenimiz bwt (doğum ağırlıkları) olduğu için ilgili değişken olarak onu kullanacağız.
library(caret)
##
## Attaching package: 'caret'
## The following object is masked from 'package:survival':
##
## cluster
set.seed(74367432)
train_id <- createDataPartition(pregnancy$bwt, p=0.80,
list=FALSE,
times=1)
train <- pregnancy[train_id,]
test <- pregnancy[-train_id,]
Veri kümelerini R’dan Excel’e çevirelim.
library("openxlsx")
write.xlsx(train, 'train.xlsx')
write.xlsx(test, 'test.xlsx')
Eğitim aşamaları bitene dek train veri setini kullanacağız.
Ufak bir inceleme yapalım.
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:Hmisc':
##
## src, summarize
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
glimpse(train)
## Rows: 990
## Columns: 7
## $ bwt <dbl> 3.20355, 3.62880, 3.06180, 3.85560, 3.91230, 3.74220, 4.0540…
## $ gestation <dbl> 282, 279, 282, 286, 244, 245, 299, 351, 282, 279, 281, 273, …
## $ parity <fct> No, No, No, No, No, No, No, No, No, No, No, No, No, No, No, …
## $ age <dbl> 33, 28, 23, 25, 33, 23, 30, 27, 32, 23, 36, 30, 38, 33, 33, …
## $ height <dbl> 162.56, 162.56, 170.18, 157.48, 157.48, 165.10, 167.64, 172.…
## $ weight <dbl> 60.75, 51.75, 56.25, 41.85, 80.10, 63.00, 61.20, 54.00, 55.8…
## $ smoke <fct> No, Yes, Yes, No, No, No, Yes, No, Yes, Yes, Yes, No, No, Ye…
Eğitim veri setimiz 990 gözlem ve 7 değişkenden oluşmaktadır.
gestation değişkeni, gün olarak gebelik süresini ifade eder. Sağlıklı bir gebelik 37-42 hafta (259-294 gün) arası sürer. 37 hafta (259 gün) öncesinde olan doğumlar; erken doğum, 42 hafta (294 gün) sonrasında gerçekleşen doğumlar ise geç doğum olarak adlandırılırlar.
gestation değişkenini kategorik değişkene çevirelim. + 259-294 gün arasında doğanlara sağlıklı süre için “Healthy”, + 259 gün öncesinde doğanlara erken doğum için “Early” + 294 gün sonrasında doğanlara ise geç doğum için “Late” yazalım.
train$gestation <- factor(ifelse(train$gestation < 259, "Early",
ifelse(train$gestation >= 259 & train$gestation <= 294, "Healthy",
ifelse(train$gestation > 294, "Late", NA))),
levels = c("Healthy", "Late", "Early"),
labels = c("Healthy", "Late", "Early"))
categories <- c("Early", "Healthy", "Late")
train$gestation <- factor(train$gestation, levels = categories)
summary(train)
## bwt gestation parity age height
## Min. :1.559 Early : 76 No :734 Min. :15.00 Min. :134.6
## 1st Qu.:3.069 Healthy:806 Yes:256 1st Qu.:23.00 1st Qu.:157.5
## Median :3.402 Late :108 Median :26.00 Median :162.6
## Mean :3.392 Mean :27.09 Mean :162.6
## 3rd Qu.:3.714 3rd Qu.:31.00 3rd Qu.:167.6
## Max. :4.990 Max. :44.00 Max. :180.3
## weight smoke
## Min. : 39.15 No :591
## 1st Qu.: 51.30 Yes:399
## Median : 56.25
## Mean : 57.72
## 3rd Qu.: 62.10
## Max. :112.50
bwt değişkeni
Max değeri 4.990 min değeri 1.559 olarak bulunmuştur. Ortanca ve ortalama değerleri birbirlerine oldukça yakındır. 1. çeyrek değeri 3.069 ve 3. çeyrek değeri 3.714’tür. Q1,Q2 ve ortancayı yorumlarsak normale yakın olabileceği izlenimini alırız.
gestation değişkeni
gestation değişkeni nicel bir değişkendi ancak factore çevrildi. 77 doğumun erken doğum, 806 doğumun sağlıklı günler içinde, 107’sinin geç doğum olduğunu göstermektedir.
parity değişkeni
Annelerin 734’ünün ilk doğumunun 256’sının ise ilk doğumunun olmadığını göstermektedir.
age değişkeni
Max değeri 44.00 min değeri 15.00 olarak bulunmuştur. Ortanca ve ortalama değerleri birbirlerine oldukça yakındır. 1. çeyrek değeri 23.00 ve 3. çeyrek değeri 31.00’dir. Q1,Q2 ve ortancayı yorumlarsak değişkenin sola çarpık olabileceği izlenimini alırız.
height değişkeni
Max değeri 180.3 min değeri 134.6 olarak bulunmuştur. Ortanca ve ortalama değerleri birbirlerine eşittir. 1. çeyrek değeri 157.5 ve 3. çeyrek değeri 167.6’dır. Q1,Q2 ve ortancayı yorumlarsak normale oldukça yakın olabileceği izlenimini alırız.
weight değişkeni
Max değeri 112.50 min değeri 39.15 olarak bulunmuştur. Ortanca ve ortalama değerleri birbirlerine eşittir. 1. çeyrek değeri 51.30 ve 3. çeyrek değeri 62.10’dur. Q1,Q2 ve ortancayı yorumlarsak değişkenin sola çarpık olabileceği izlenimini alırız.
smoke değişkeni
Annelerin 591’inin sigara içmediğini, 399’unun ise sigara içtiğini gösterir.
bwt değişkeni
n <- nrow(train)
train_siralama <- train[order(train$bwt),]
#n çift sayı olduğu için;
a <- (n/2)
b <- (n/2)+1
(train_siralama$bwt[a] + train_siralama$bwt[b])/2
## [1] 3.402
median(train$bwt)
## [1] 3.402
mean(train$bwt)
## [1] 3.392464
Ortanca > Ortalama olduğu için sola çarpıktır.
age değişkeni
n <- nrow(train)
train_siralama <- train[order(train$age),]
#n çift sayı olduğu için;
a <- (n/2)
b <- (n/2)+1
(train_siralama$age[a] + train_siralama$age[b])/2
## [1] 26
median(train$age)
## [1] 26
mean(train$age)
## [1] 27.08788
Ortanca < Ortalama olduğu için sağa çarpıktır.
height değişkeni
n <- nrow(train)
train_siralama <- train[order(train$height),]
#n çift sayı olduğu için;
a <- (n/2)
b <- (n/2)+1
(train_siralama$height[a] + train_siralama$height[b])/2
## [1] 162.56
median(train$height)
## [1] 162.56
mean(train$height)
## [1] 162.5985
Ortanca < Ortalama olduğu için sağa çarpıktır.
weight değişkeni
n <- nrow(train)
train_siralama <- train[order(train$weight),]
#n çift sayı olduğu için;
a <- (n/2)
b <- (n/2)+1
(train_siralama$weight[a] + train_siralama$weight[b])/2
## [1] 56.25
median(train$weight)
## [1] 56.25
mean(train$weight)
## [1] 57.72455
Ortanca < Ortalama olduğu için sağa çarpıktır.
bwt değişkeni
fivenum(train$bwt)
## [1] 1.55925 3.06180 3.40200 3.71385 4.98960
En küçük değer; 1.55925 Q1; 3.06180 Ortanca; 3.40200 Q3; 3.71385 En büyük değer; 4.98960
age değişkeni
fivenum(train$age)
## [1] 15 23 26 31 44
En küçük değer; 15 Q1; 23 Ortanca; 26 Q3; 31 En büyük değer; 44
height değişkeni
fivenum(train$height)
## [1] 134.62 157.48 162.56 167.64 180.34
En küçük değer; 134.62 Q1; 157.48
Ortanca; 162.56
Q3; 167.64
En büyük değer; 180.34
weight değişkeni
fivenum(train$weight)
## [1] 39.15 51.30 56.25 62.10 112.50
En küçük değer; 39.15
Q1; 51.30
Ortanca; 56.25
Q3; 62.10
En büyük değer; 112.50
median(train$bwt)
## [1] 3.402
median(train$age)
## [1] 26
median(train$height)
## [1] 162.56
median(train$weight)
## [1] 56.25
Ortancalar; bwt değişkeni için 3.402 age değişkeni için 26 height değişkeni için 162.56 weight değişkeni için 56.25 bulunmuştur.
mean(train$bwt)
## [1] 3.392464
mean(train$age)
## [1] 27.08788
mean(train$height)
## [1] 162.5985
mean(train$weight)
## [1] 57.72455
Ortalamalar; bwt değişkeni için 3.392464 age değişkeni için 27.10909 height değişkeni için 162.6344 weight değişkeni için 57.81227 bulunmuştur.
library(psych)
##
## Attaching package: 'psych'
## The following object is masked from 'package:Hmisc':
##
## describe
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
geometric.mean(train$bwt)
## [1] 3.351785
geometric.mean(train$age)
## [1] 26.50861
geometric.mean(train$height)
## [1] 162.4708
geometric.mean(train$weight)
## [1] 57.02909
Geometrik ortalamalar; bwt değişkeni için 3.351785 age değişkeni için 26.52994 height değişkeni için 162.506 weight değişkeni için 57.11128 bulunmuştur.
%15 oranı en sık kullanılan oran olduğu için biz de o oranda inceleme yapalım.
bwt değişkeni
point <- 0.15
mean(train$bwt, trim = point)
## [1] 3.398405
# Ham veri toplam gözlem sayısı;
n <- nrow(train)
n
## [1] 990
# Kalan gözlem sayısı;
ks <-n-(as.integer(2*point*n))
ks
## [1] 693
%15 kesilmiş ortalama alındığında 990 gözlemden 693 tanesi kalmaktadır. Ortalama değere bakacak olursak, ham veride 3.392464 idi. %15 kesilmiş halinde ise 3.398405 olarak bulunmuştur. Çok ufak bir azalma vardır.
age değişkeni
point <- 0.15
mean(train$age, trim = point)
## [1] 26.5562
# Ham veri toplam gözlem sayısı;
n <- nrow(train)
n
## [1] 990
# Kalan gözlem sayısı;
ks <-n-(as.integer(2*point*n))
ks
## [1] 693
%15 kesilmiş ortalama alındığında 990 gözlemden 693 tanesi kalmaktadır. Ortalama değere bakacak olursak, ham veride 27.10909 idi. %15 kesilmiş halinde ise 26.58501 olarak bulunmuştur. 0.52408 azalma vardır.
height değişkeni
point <- 0.15
mean(train$height, trim = point)
## [1] 162.6661
# Ham veri toplam gözlem sayısı;
n <- nrow(train)
n
## [1] 990
# Kalan gözlem sayısı;
ks <-n-(as.integer(2*point*n))
ks
## [1] 693
%15 kesilmiş ortalama alındığında 990 gözlemden 693 tanesi kalmaktadır. Ortalama değere bakacak olursak, ham veride 162.6344 idi. %15 kesilmiş halinde ise 162.6918 olarak bulunmuştur. Çok ufak bir artış vardır.
weight değişkeni
point <- 0.15
mean(train$weight, trim = point)
## [1] 56.7013
# Ham veri toplam gözlem sayısı;
n <- nrow(train)
n
## [1] 990
# Kalan gözlem sayısı;
ks <-n-(as.integer(2*point*n))
ks
## [1] 693
%15 kesilmiş ortalama alındığında 990 gözlemden 693 tanesi kalmaktadır. Ortalama değere bakacak olursak, ham veride 57.81227 idi. %15 kesilmiş halinde ise 56.75187 olarak bulunmuştur. Ufak bir azalma vardır.
genislik_bwt <- max(train$bwt) - min(train$bwt)
genislik_age <- max(train$age) - min(train$age)
genislik_height <- max(train$height) - min(train$height)
genislik_weight <- max(train$weight) - min(train$weight)
genislik_bwt
## [1] 3.43035
genislik_age
## [1] 29
genislik_height
## [1] 45.72
genislik_weight
## [1] 73.35
Genişlikler; bwt değişkeni için 3.43035 age değişkeni için 29 height değişkeni için 45.72 weight değişkeni için 73.35 bulunmuştur.
bwt değişkeni için
q1 <- as.vector(quantile(train$bwt,0.25))
q3 <- as.vector(quantile(train$bwt,0.75))
DAG_bwt <- q3-q1
DAG_bwt
## [1] 0.6449625
age değişkeni için
q1 <- as.vector(quantile(train$age,0.25))
q3 <- as.vector(quantile(train$age,0.75))
DAG_age <- q3-q1
DAG_age
## [1] 8
height değişkeni için
q1 <- as.vector(quantile(train$height,0.25))
q3 <- as.vector(quantile(train$height,0.75))
DAG_height <- q3-q1
DAG_height
## [1] 10.16
weight değişkeni için
q1 <- as.vector(quantile(train$weight,0.25))
q3 <- as.vector(quantile(train$weight,0.75))
DAG_weight <- q3-q1
DAG_weight
## [1] 10.8
DAG değerleri; bwt değişkeni için 0.6449625 age değişkeni için 8 height değişkeni için 10.16 weight değişkeni için 10.8 bulunmuştur.
var(train$bwt)
## [1] 0.2625117
var(train$age)
## [1] 32.6404
var(train$height)
## [1] 41.32398
var(train$weight)
## [1] 87.44605
Varyanslar; bwt değişkeni için 0.2625117 age değişkeni için 32.62914 height değişkeni için 41.56781 weight değişkeni için 88.39662 bulunmuştur.
(sd(train$bwt) / mean(train$bwt))*100
## [1] 15.10286
(sd(train$age) / mean(train$age))*100
## [1] 21.09127
(sd(train$height) / mean(train$height))*100
## [1] 3.953526
(sd(train$weight) / mean(train$weight))*100
## [1] 16.1998
Değişim katsayıları; bwt değişkeni için 15.10286 age değişkeni için 21.07113 height değişkeni için 3.964297 weight değişkeni için 16.26289 bulunmuştur.
bwt değişkeni için
sort <- train[order(train$bwt),]
medianf <- median(sort$bwt)
sort$fmed <- abs(sort$bwt-medianf)
sort2 <- sort[order(sort$fmed),]
mad <- median(sort2$fmed)
mad
## [1] 0.31185
median(train$bwt)
## [1] 3.402
mean(train$bwt)
## [1] 3.392464
Ortanca ve ortalama dahilinde mad değeri çok büyük bulunmamıştır. Bu da veri kümesindeki değerlerin ortalama çevresinde birbirine yakın kümelendiklerini gösterir.
age değişkeni için
sort <- train[order(train$age),]
medianf <- median(sort$age)
sort$fmed <- abs(sort$age-medianf)
sort2 <- sort[order(sort$fmed),]
mad <- median(sort2$fmed)
mad
## [1] 4
median(train$age)
## [1] 26
mean(train$age)
## [1] 27.08788
Ortanca ve ortalama dahilinde mad değeri küçük bulunmuştur. Bu da veri kümesindeki değerlerin ortalama çevresinde birbirine yakın kümelendiklerini gösterir.
height değişkeni için
sort <- train[order(train$height),]
medianf <- median(sort$height)
sort$fmed <- abs(sort$height-medianf)
sort2 <- sort[order(sort$fmed),]
mad <- median(sort2$fmed)
mad
## [1] 5.08
median(train$height)
## [1] 162.56
mean(train$height)
## [1] 162.5985
Ortanca ve ortalama dahilinde mad değeri küçük bulunmuştur. Bu da veri kümesindeki değerlerin ortalama çevresinde birbirine yakın kümelendiklerini gösterir.
weight değişkeni için
sort <- train[order(train$weight),]
medianf <- median(sort$weight)
sort$fmed <- abs(sort$weight-medianf)
sort2 <- sort[order(sort$fmed),]
mad <- median(sort2$fmed)
mad
## [1] 5.4
median(train$weight)
## [1] 56.25
mean(train$weight)
## [1] 57.72455
Ortanca ve ortalama dahilinde mad değeri küçük bulunmuştur. Bu da veri kümesindeki değerlerin ortalama çevresinde birbirine yakın kümelendiklerini gösterir.
Gini, nitel verilerde değişkenliği ölçüsüdür.
gestation değişkeni
freq <- as.data.frame(table(train$gestation))
names(freq)[1] <- 'Gebelik Süresi'
gini <- function(a,b) {
a1 <- (a/(a+b))**2
b1 <- (b/(a+b))**2
x<-1-(a1 + b1)
return(x)
warning = FALSE}
gn <- gini(freq[1,2],freq[2,2])
k <- 2
gn/((k-1)/k)
## [1] 0.3149716
Gini indeksi 0.3112129 bulunmuştur. Bu değer 0’a daha yakın olduğu için değişkenin dağılımının homojene daha yakın olduğu söylenebilir.
parity değişkeni
freq <- as.data.frame(table(train$parity))
names(freq)[1] <- 'Gebelik Süresi'
gini <- function(a,b) {
a1 <- (a/(a+b))**2
b1 <- (b/(a+b))**2
x<-1-(a1 + b1)
return(x)
warning = FALSE}
gn <- gini(freq[1,2],freq[2,2])
k <- 2
gn/((k-1)/k)
## [1] 0.7668768
Gini indeksi 0.7668768 bulunmuştur. Bu değer 1’e oldukça yakın olduğu için değişkenin dağılımının heterojene yakın olduğu söylenebilir.
smoke değişkeni
freq <- as.data.frame(table(train$smoke))
names(freq)[1] <- 'Gebelik Süresi'
gini <- function(a,b) {
a1 <- (a/(a+b))**2
b1 <- (b/(a+b))**2
x<-1-(a1 + b1)
return(x)
warning = FALSE}
gn <- gini(freq[1,2],freq[2,2])
k <- 2
gn/((k-1)/k)
## [1] 0.9623875
Gini indeksi 0.9623875 bulunmuştur. Bu değer neredeyse 1’e eşit olduğu için değişkenin dağılımının heterojen olduğu söylenebilir.
Entropi
Entropi, nitel verilerde değişkenliği ölçüsüdür.
gestation değişkeni
freq <- as.data.frame(table(train$gestation))
names(freq)[1] <- 'Gebelik Süresi'
entropi <- function(base,a,b) {
var <- abs(((a)/(a+b))*log(((a)/(a+b)),base))-(((b)/(a+b))*log(((b)/(a+b)),base))
return(var)
warning = FALSE}
ent <- entropi(10,freq[1,2],freq[2,2])
k <- 2
ent/(log(k,10))
## [1] 0.4235474
Entropi 0.4196731 bulunmuştur. Bu değer biraz ortada. Ancak 0’a biraz daha yakın olduğu için değişkenin dağılımının homojene yakın olduğu söylenebilir.
parity değişkeni
freq <- as.data.frame(table(train$parity))
names(freq)[1] <- 'Gebelik Süresi'
entropi <- function(base,a,b) {
var <- abs(((a)/(a+b))*log(((a)/(a+b)),base))-(((b)/(a+b))*log(((b)/(a+b)),base))
return(var)
warning = FALSE}
ent <- entropi(10,freq[1,2],freq[2,2])
k <- 2
ent/(log(k,10))
## [1] 0.8246049
Entropi 0.8246049 bulunmuştur. Bu değer 1’e çok yakın olduğu için değişkenin dağılımının heterojene yakın olduğu söylenebilir.
smoke değişkeni
freq <- as.data.frame(table(train$smoke))
names(freq)[1] <- 'Gebelik Süresi'
entropi <- function(base,a,b) {
var <- abs(((a)/(a+b))*log(((a)/(a+b)),base))-(((b)/(a+b))*log(((b)/(a+b)),base))
return(var)
warning = FALSE}
ent <- entropi(10,freq[1,2],freq[2,2])
k <- 2
ent/(log(k,10))
## [1] 0.9726956
Entropi 0.9726956 bulunmuştur. Bu değer 1’e çok yakın olduğu için değişkenin dağılımının heterojene yakın olduğu söylenebilir.
bwt değişkeni
library(moments)
skewness(train$bwt)
## [1] -0.1238406
kurtosis(train$bwt)
## [1] 3.501518
Çapıklık değeri -0.1238406 ve basıklık değeri 3.501518 olarak bulunmuştur. Bu da bize bwt değişkeni dağılımının sivri ve hafif sola çarpık olduğunu söyler.
age değişkeni
library(moments)
skewness(train$age)
## [1] 0.5612459
kurtosis(train$age)
## [1] 2.66989
Çapıklık değeri 0.5546203 ve basıklık değeri 2.662981 olarak bulunmuştur. Bu da bize age değişkeni dağılımının basık ve sağa çarpık olduğunu söyler.
height değişkeni
library(moments)
skewness(train$height)
## [1] -0.1402213
kurtosis(train$height)
## [1] 3.222584
Çapıklık değeri -0.1304564 ve basıklık değeri 3.218946 olarak bulunmuştur. Bu da bize height değişkeni dağılımının sivri ve hafif sola çarpık olduğunu söyler.
weight değişkeni
library(moments)
skewness(train$weight)
## [1] 1.212535
kurtosis(train$weight)
## [1] 5.809795
Çapıklık değeri 1.219162 ve basıklık değeri 5.761421 olarak bulunmuştur. Bu da bize weight değişkeni dağılımının sivri ve sağa çarpık olduğunu söyler.
Pearson ilişkisini yorumlamak için normallik gerekir. Bu sebeple değişkenler arası pearson ilişki katsayısı şuan yorumlanmayacaktır.
bwt, bağımlı değişken olmak üzere, diğer değişkenler kısmi ilişki katsayılarını hesaplayalım.
# Kısmi ilişki katsayıları
partial_cor_age <- summary(lm(bwt ~ age + height + weight, data = train))$coefficients["age", "Estimate"]
partial_cor_height <- summary(lm(bwt ~ age + height + weight, data = train))$coefficients["height", "Estimate"]
partial_cor_weight <- summary(lm(bwt ~ age + height + weight, data = train))$coefficients["weight", "Estimate"]
# Sonuçlar
partial_cor_age
## [1] 0.00192483
partial_cor_height
## [1] 0.01231122
partial_cor_weight
## [1] 0.00477022
Age: Age değişkeninin bwt (birth weight) ile kısmi ilişkisi 0.002058186 olarak hesaplanmıştır. Bu değer çok düşük olduğundan, yaşın bwt üzerindeki etkisi çok zayıftır ve istatistiksel olarak anlamlı bir ilişki göstermemektedir.
Height: Height değişkeninin bwt ile kısmi ilişkisi 0.01263818 olarak hesaplanmıştır. Bu pozitif katsayı, boyun birth weight üzerinde hafif bir pozitif etkisi olduğunu göstermektedir. Ancak, bu etki çok küçüktür.
Weight: Weight değişkeninin bwt ile kısmi ilişkisi 0.004503554 olarak hesaplanmıştır. Bu değer de çok düşüktür, bu nedenle ağırlığın bwt üzerindeki etkisi çok zayıftır ve istatistiksel olarak anlamlı bir ilişki göstermemektedir.
Sonuç olarak, verilen kısmi ilişki katsayılarına göre, age, height ve weight değişkenleri arasında bwt ile güçlü bir ilişki olduğunu söylemek doğru değildir. İlişkiler çok zayıf veya hemen hemen yoktur.
bwt, bağımlı değişken olmak üzere, diğer değişkenler ile spearman hesaplayalım.
bwt ve age
correlation <- cor(train$bwt, train$age, method = "spearman")
correlation
## [1] 0.04436932
bwt ve age değişkenleri arasında çok zayıf bir sıralama ilişkisi olduğu söylenebilir. İlişki pozitif yönlüdür. Yani, bir değişkenin değeri artarken diğer değişkenin değeri de genellikle artma eğilimindedir.
bwt ve height
correlation <- cor(train$bwt, train$height, method = "spearman")
correlation
## [1] 0.2146011
Değişkenler arasında pozitif yönlü bir sıralama ilişkisi olduğunu gösterir. Yani, bir değişkenin değeri artarken diğer değişkenin değeri de genellikle artma eğilimindedir.
Ancak, katsayının değeri 1’e çok yakın olmadığından ilişki çok güçlü değildir. Orta düzeyde bir ilişki olduğunu söyleyebiliriz.
bwt ve weight
correlation <- cor(train$bwt, train$weight, method = "spearman")
correlation
## [1] 0.1895072
Değişkenler arasında pozitif yönlü bir sıralama ilişkisi olduğunu gösterir. Yani, bir değişkenin değeri artarken diğer değişkenin değeri de genellikle artma eğilimindedir.
Ancak, katsayının değeri 1’e çok yakın olmadığından ilişki çok güçlü değildir. Orta düzeyde bir ilişki olduğunu söyleyebiliriz.
bwt değişkeni
Ancak emin olmak için histograma da bakalım.
k <- ceiling((log(2 * nrow(train))) + 1)
genislik <- max(train$bwt) - min(train$bwt)
binw <- genislik / k
ggplot(train, aes(bwt)) +
geom_histogram(binwidth = binw, fill = "cadetblue3", colour = "black", alpha = 0.6) +
ggtitle("Doğum Ağırlığı (kg) Histogramı")
Histograma bakınca, değişkenin gerçekten de normale yakın dağılımı olduğunu görmekteyiz.
age değişkeni
k <- ceiling((log(2 * nrow(train))) + 1)
genislik <- max(train$age) - min(train$age)
binw <- genislik / k
ggplot(train, aes(age)) +
geom_histogram(binwidth = binw, fill = "darkorchid1", colour = "black", alpha = 0.6) +
ggtitle("Annelerin Yaşları Histogramı")
Histogram, değişkenin hafif basık ve sağa çarpık dağılımı olduğunu göstermektedir.
height değişkeni
k <- ceiling((log(2 * nrow(train))) + 1)
genislik <- max(train$height) - min(train$height)
binw <- genislik / k
ggplot(train, aes(height)) +
geom_histogram(binwidth = binw, fill = "seagreen4", colour = "black", alpha = 0.6) +
ggtitle("Annelerin Boyları (cm) Histogramı")
Histogram, değişkenin sivri ve hafif sola çarpık dağılımı olduğunu göstermektedir.
weight değişkeni
k <- ceiling((log(2 * nrow(train))) + 1)
genislik <- max(train$weight) - min(train$weight)
binw <- genislik / k
ggplot(train, aes(weight)) +
geom_histogram(binwidth = binw, fill = "dodgerblue4", colour = "black", alpha = 0.6) +
ggtitle("Annelerin Ağırlıkları (kg) Histogramı")
Histogram, değişkenin sivri ve sağa çarpık dağılımı olduğunu göstermektedir.
Bu grafik için 3 değişkeni olan gestation kategorik değişkenini seçelim.
gestation ve bwt
bwt değişkeni, bebeklerin doğum ağırlıklarını kg cinsinden ifade eden değişkendi.
ggplot(train,aes(bwt,fill=gestation))+
geom_histogram(binwidth=binw)+
facet_grid(gestation~.)+
scale_fill_manual(values=c("lightgreen","steelblue1","mediumorchid1"))
bwt değişkeni bebeklerin doğum kilolarını ifade etmekteydi.
Sağlıklı sürede doğan bebeklerin kilolarının ağırlıklı olarak 5’ten az olduğu görünmektedir.
Geç doğan bebeklerin kilolarının da ağırlıklı olarak 5’ten az olduğu görünmektedir.
Sağlıklı sürede ve geç doğan bebeklerde kilosu 5’ten fazla olan bebek bulunsa da erken soğan bebeklerde bulunmamaktadır. Zaten erken doğumda bebeğin 5 kilodan fazla doğması oldukça zor bir orandır.
gestation ve age
ggplot(train,aes(age,fill=gestation))+
geom_histogram(binwidth=binw)+
facet_grid(gestation~.)+
scale_fill_manual(values=c("lightgreen","steelblue1","mediumorchid1"))
Sağlıklı sürede doğan bebeklerin anneleri çoğunlukla 20-30 yaş aralığında yer almaktadır. Annelerin yaşları en başta sağlıklı kabul ettiğimiz yaşlardan az veya fazla olsa da sağlıklı sürede doğum gerçekleştiği görünmektedir.
Diğer grafikleri kontrol ettiğimizde geç ve erken doğumlar da 20-30 yaş aralığında fazladır.
gestation ve height
ggplot(train,aes(height,fill=gestation))+
geom_histogram(binwidth=binw)+
facet_grid(gestation~.)+
scale_fill_manual(values=c("lightgreen","steelblue1","mediumorchid1"))
Sağlıklı sürede doğan bebeklerin anneleri boyları yaklaşık 158-168 cm aralığında yer almaktadır. Diğer grafikleri kontrol ettiğimizde geç ve erken doğumlar da en çok bu aralıkta yer almaktadır.
gestation ve weight
ggplot(train,aes(weight,fill=gestation))+
geom_histogram(binwidth=binw)+
facet_grid(gestation~.)+
scale_fill_manual(values=c("lightgreen","steelblue1","mediumorchid1"))
Annelerin kilolarının yorumu da hemen hemen diğer grafik yorumlarına benzer. Ancak burada dikkat etmemiz gereken bir nokta var.
Annelerin kiloları 100’ün üstüne çıksa bile sağlıklı sürede doğum gerçekleşmiştir. Geç ve erken doğumlar için bu görülmemektedir.
bwt değişkeni
ggplot(train,aes(bwt))+
geom_density()+
geom_density(alpha=.4,fill="turquoise")
Bebeklerin kilolarına baktığımızda 3-4 kg aralığında yoğunlaştığını görmekteyiz.
age değişkeni
ggplot(train,aes(age))+
geom_density()+
geom_density(alpha=.4,fill="yellow")
Annelerin yaşları 20-30 aralığında yoğunlaşmaktadır.
height değişkeni
ggplot(train,aes(height))+
geom_density()+
geom_density(alpha=.4,fill="springgreen")
Annelerin boyları 155-170 cm aralığında yoğunlaşmaktadır. Sola çarpıklık söz konusudur. Boyu 140 cm’den kısa anneler bunun sebebidir.
weight değişkeni
ggplot(train,aes(weight))+
geom_density()+
geom_density(alpha=.4,fill="slateblue3")
Annelerin kiloları 45-65 kg aralığında yoğunlaşmaktadır. Oldukça sağa çarpık bir dağılım vardır. Bu da bizlere, fazla kilosu olan annelerin bulunduğunu göstermektedir.
bwt değişkeni
ggplot(train,aes(bwt))+
geom_histogram(aes(y=..density..), fill="white", color="black")+
geom_density(alpha=.4,fill="turquoise")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Dağılımın sivri ancak normale yakın olduğu görünmektedir.
age değişkeni
ggplot(train,aes(age))+
geom_histogram(aes(y=..density..), fill="white", color="black")+
geom_density(alpha=.4,fill="yellow")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Dağılım sivri ve sağa çarpıktır.
height değişkeni
ggplot(train,aes(height))+
geom_histogram(aes(y=..density..), fill="white", color="black")+
geom_density(alpha=.4,fill="springgreen")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Dağılım oldukça sivridir ve sola çarpıktır. Boyu 1410 cm’den kısa anneler bunun sebebidir.
weight değişkeni
ggplot(train,aes(weight))+
geom_histogram(aes(y=..density..), fill="white", color="black")+
geom_density(alpha=.4,fill="slateblue3")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Sivri ve oldukça sağa çarpık bir dağılım vardır. Bu da bizlere, fazla kilosu olan annelerin bulunduğunu göstermektedir.
bwt değişkeni
ggplot(train, aes(y = bwt)) +
geom_boxplot(fill = "aquamarine") +
ggtitle("Doğum Ağırlığı (kg) Boxplot")
Grafiğe bakınca oldukça fazla uç değer olduğunu görmekte birlikte normale oldukça yakın olduğu yorumunu yapabiliriz. Ortancanın konumunu Q1 ve Q2’ye göre yorumlarsak neredeyse ortada görünmektedir. Bunun sebebi uç değerlerin her iki uçta da yer aldığından kaynaklanabilir. Ancak dönüşüm aşamasından sonra tekrar incelenecektir.
age değişkeni
ggplot(train, aes(y = age)) +
geom_boxplot(fill = "violet") +
ggtitle("Annelerin Yaşları Boxplot")
Dağılımın sağa çarpık olduğu box plot’tan da anlaşılmaktadır. Görünen yalnızca 1 adet uç değer bulunmaktadır.
height değişkeni
ggplot(train, aes(y = height)) +
geom_boxplot(fill = "orangered") +
ggtitle("Annelerin Boyları (cm) Boxplot")
Dağılım, normale oldukça yakındır. Ancak görünen 2 adet uç değer bulunmaktadır.
weight değişkeni
ggplot(train, aes(y = weight)) +
geom_boxplot(fill = "mediumslateblue") +
ggtitle("Annelerin Ağırlıkları (kg) Boxplot")
Dağılım normale yakın görünmekle birlikte oldukça fazla uç değer içermektedir.
Bu grafik için 3 değişkeni olan gestation kategorik değişkenini seçelim.
gestation ve bwt
bwt değişkeni, bebeklerin doğum ağırlıklarını kg cinsinden ifade eden değişkendi.
ggplot(train, aes(x=gestation,y=bwt, fill=gestation))+
geom_boxplot()+
labs(title="Doğum Ağırlıkları İçin gestation Kutu Çizimi",
x="gestation Kategorileri", y = "Doğum Ağırlıkları")+
scale_fill_discrete(name = "gestation Kategorileri")+
stat_summary(fun = median, geom="line", group= 1, color= "black", size = 1)
Doğum ağırlıklarına ve gestation kategorilerine bakalım. gestation kategorileri early, healhty ve late idi. Bunlar bebeklerin anne karnında kaldıkları süreyi temsil ediyor. Yani aslında kendi içlerinde sıralılar.
Doğum ağırlığı arttıkça, bebeklerin anne karnında kalma süresini temsil eden değişkende de artış olduğunu görmekteyiz. Bu da aralarında ilişki olduğunu gösterir.
gestation ve age
ggplot(train, aes(x=gestation,y=age, fill=gestation))+
geom_boxplot()+
labs(title="Annelerin Yaşları İçin gestation Kutu Çizimi",
x="gestation Kategorileri", y = "Annelerin Yaşları")+
scale_fill_discrete(name = "gestation Kategorileri")+
stat_summary(fun = median, geom="line", group= 1, color= "black", size = 1)
Early’den Healthy’ye geçerken azalma olduğunu görmekteyiz. Yani, gestation kategorisi Early’den Healthy’ye arttıkça, annelerin yaşı azalmaktadır. Ancak Healthy’den Late kategorisine geçerken düz bir şekilde devam etmektedir. Bu da o kısımda ilişki olmadığını gösterir.
gestation ve height
ggplot(train, aes(x=gestation,y=height, fill=gestation))+
geom_boxplot()+
labs(title="Annelerin Boyları İçin gestation Kutu Çizimi",
x="gestation Kategorileri", y = "Annelerin Boyları")+
scale_fill_discrete(name = "gestation Kategorileri")+
stat_summary(fun = median, geom="line", group= 1, color= "black", size = 1)
Çizginin tüm kategorilerde düz devam ettiğini görmekteyiz. Bu da bize, annelerin boyları ile bebeklerin anne karnında kalma süreleri arasında ilişki olmadığını göstermektedir.
gestation ve weight
ggplot(train, aes(x=gestation,y=weight, fill=gestation))+
geom_boxplot()+
labs(title="Annelerin Ağırlıkları İçin gestation Kutu Çizimi",
x="gestation Kategorileri", y = "Annelerin Ağırlıkları")+
scale_fill_discrete(name = "gestation Kategorileri")+
stat_summary(fun = median, geom="line", group= 1, color= "black", size = 1)
Early’den Healthy’ye geçerken azalış, Healthy’den Late’e geçerken artış görünmektedir. Annelerin ağırlıkları ile bebeklerin anne karnında kalma süreleri arasında ilişki vardır.
Bu grafik için 3 değişkeni olan gestation kategorik değişkenini seçelim.
gestation ve bwt
ggplot(train, aes(x=gestation,y=bwt, fill=gestation)) +
geom_boxplot(width=0.3)+
stat_summary(fun.y = median, geom="line", group= 1, color= "blue", size = 1)+
stat_summary(geom = 'line', linetype = "dashed",group=1,size = 1,fun.y = quantile, fun.args = list(probs = 0.25), position = position_dodge(0.75)) +
stat_summary(geom = 'line', group= 1,linetype = "dashed",size = 1, fun.y = quantile, fun.args = list(probs = 0.75), position = position_dodge(0.75))
Bebeklerin doğum ağırlıkları ile anne karnında kalma süreleri arasında ilişki bulunduğunu buradan da görmekteyiz. Q1 ve Q3 değerlerine bakıldığında onlarda da artış görünmektedir.
Erken doğumdan sağlıklı doğuma geçişi incelediğimizde; Q1’in Q3’e göre daha fazla arttığını gözlemlemekteyiz. Bu da bize, erken doğumdan sağlıklı doğuma geçerken 1. çeyreğin hızla arttığını göstermektedir. Bu da sağlıklı vakitte doğan bebeklerin ağırlıklarının, erken doğanlara göre (Q1 değerlerinin) hızla arttığını gösterir.
gestation ve age
ggplot(train, aes(x=gestation,y=age, fill=gestation)) +
geom_boxplot(width=0.3)+
stat_summary(fun.y = median, geom="line", group= 1, color= "blue", size = 1)+
stat_summary(geom = 'line', linetype = "dashed",group=1,size = 1,fun.y = quantile, fun.args = list(probs = 0.25), position = position_dodge(0.75)) +
stat_summary(geom = 'line', group= 1,linetype = "dashed",size = 1, fun.y = quantile, fun.args = list(probs = 0.75), position = position_dodge(0.75))
Ortancalı boxplot yorumunda; erken doğum ile sağlıklı doğum arasında, az da olsa annelerin yaşları ile ilişki olduğunu ancak sağlıklı doğum ile geç doğum arasında olmadığını söylemiştik.
Q1 değerlerine bakarsak, erken doğumdan sağlıklı doğuma ve sağlıklı doğumdan geç doğuma geçerken çok az azaldığını görmekteyiz. Hatta neredeyse aynı gibi. Ancak Q3 değeri; erken doğumdan sağlıklı doğuma geçerken belli bir miktar azalmış, sağlıklı doğumdan geç doğuma geçerken de belli bir miktar artmıştır.
gestation ve height
ggplot(train, aes(x=gestation,y=height, fill=gestation)) +
geom_boxplot(width=0.3)+
stat_summary(fun.y = median, geom="line", group= 1, color= "blue", size = 1)+
stat_summary(geom = 'line', linetype = "dashed",group=1,size = 1,fun.y = quantile, fun.args = list(probs = 0.25), position = position_dodge(0.75)) +
stat_summary(geom = 'line', group= 1,linetype = "dashed",size = 1, fun.y = quantile, fun.args = list(probs = 0.75), position = position_dodge(0.75))
Annelerin boyları ile bebeklerin anne karnında kalma süreleri arasında
ilişki olmadığını söylemiştik. Grafiğe bakıldığında Q1 ve Q3 değerleri
de paralel gitmektedir. Yani yorumumuz desteklenmektedir. Yalnızca
sağlıklı doğumdan geç doğuma geçerken Q1 değerinde artış görünmektedir.
Bunun sebebi Heatlhy’de yer alan uç değerler olabilir.
gestation ve weight
ggplot(train, aes(x=gestation,y=weight, fill=gestation)) +
geom_boxplot(width=0.3)+
stat_summary(fun.y = median, geom="line", group= 1, color= "blue", size = 1)+
stat_summary(geom = 'line', linetype = "dashed",group=1,size = 1,fun.y = quantile, fun.args = list(probs = 0.25), position = position_dodge(0.75)) +
stat_summary(geom = 'line', group= 1,linetype = "dashed",size = 1, fun.y = quantile, fun.args = list(probs = 0.75), position = position_dodge(0.75))
Annelerin ağırlıkları ile bebeklerin anne karnında kalma süreleri arasında ilişki vardı. Early, Healthy ve Late aralarında Q1 ve Q3 değerlerinin de ilişki ile benzer şekilde azalıp arttığını görmekteyiz.
bwt & gestation & smoke
ggplot(train, aes(x = gestation, y = bwt, fill = smoke)) +
geom_boxplot(position = position_dodge(width = 0.9)) +
stat_summary(fun = median,geom = 'line',
aes(group = smoke, colour = smoke),size=1,
position = position_dodge(width = 0.9))
Sigara içme durumunu kırılım olarak aldık.
Çizgileri incelediğimizde kesişim olmadığını görmekteyiz. Bu da ilişki olmadığı anlamına gelmektedir. Erken doğumdan sağlıklı doğuma geçen çizgilerde paralellik var. Orada ilişki yoktur. Sağlıklı doğumdan geç doğuma geçerken de kesişim yoktur bu nedenle ilişki düşünülmez. Ancak tam bir paralellik söz konusu olmadığı için tam olarak ilişki olamaz da diyemeyiz.
age & gestation & smoke
ggplot(train, aes(x = gestation, y = age, fill = smoke)) +
geom_boxplot(position = position_dodge(width = 0.9)) +
stat_summary(fun = median,geom = 'line',
aes(group = smoke, colour = smoke),size=1,
position = position_dodge(width = 0.9))
Grafiği incelediğimizde çizgilerin üst üste geldiğini görmekteyiz. Kesişim olup olmadığını net olarak göremiyoruz. Ancak kategorik düzeylerde boxplot incelemesi yaptığımızda, age ve gestation değişkenlerinin ilişkilerinin olmadığını gözlemlemiştik (erken doğumdan sağlıklı doğuma geçerken çok az miktarda var gibiydi.). Bu sebeple, net olarak çizgileri ayırt edemediğimiz için böyle bir yorumda bulunabiliriz.
height & gestation & smoke
ggplot(train, aes(x = gestation, y = height, fill = smoke)) +
geom_boxplot(position = position_dodge(width = 0.9)) +
stat_summary(fun = median,geom = 'line',
aes(group = smoke, colour = smoke),size=1,
position = position_dodge(width = 0.9))
weight & gestation & smoke
ggplot(train, aes(x = gestation, y = weight, fill = smoke)) +
geom_boxplot(position = position_dodge(width = 0.9)) +
stat_summary(fun = median,geom = 'line',
aes(group = smoke, colour = smoke),size=1,
position = position_dodge(width = 0.9))
Kategorik değişkenler için elbette bakılmayacaktır.
bwt değişkeni
qqnorm(train$bwt, col = "darkblue", main = "Doğum Ağırlığı (kg) QQ Plot")
qqline(train$bwt, col = "red")
bwt değişkeninin normale oldukça yakın bir dağılımının olduğu yorumunda bulunabiliriz. Gözlemler eğriye oldukça yakınlar. Ancak baş ve uç kısımlarındaki değerler farklılığa yol açabilir. Bu durum uç değerlerden kaynaklı olabilir. Ancak histogram ve boxplot da göz önünde bulundurulunda bwt değişkeninin normale yakın olduğunu söyleyebiliriz.
age değişkeni
qqnorm(train$age, col = "darkblue", main = "Annelerin Yaşları QQ Plot")
qqline(train$age, col = "red")
Q-Q Grafiğinde öncelikle gürültü göze çarpmaktadır. Bu gürültünün sebebi uç değerler olabilir. Dönüşüm uygulamasından sonra tekrar kontrol sağlanacaktır.
height değişkeni
qqnorm(train$height, col = "darkblue", main = "Annelerin Boyları (cm) QQ Plot")
qqline(train$height, col = "red")
Q-Q Grafiğinde öncelikle gürültü göze çarpmaktadır. Bu gürültünün sebebi uç değerler olabilir. Dönüşüm uygulamasından sonra tekrar kontrol sağlanacaktır.
weight değişkeni
qqnorm(train$weight, col = "darkblue", main = "Annelerin Ağırlıkları (kg) QQ Plot")
qqline(train$weight, col = "red")
Q-Q Grafiği, dağılımın hafif kuyruklu olduğu izlenimini vermektedir. Histogramdan da gördüğümüz gibi sağa çarpıklık olduğunu söyleyebiliriz. Ayrıca potansiyel uç değer/değerler de vardır.
gestation değişkeni
library(ggplot2)
ggplot(train,aes(gestation))+
geom_bar()
ggplot(train,aes(gestation))+
geom_bar(aes(fill=gestation))+
xlab("Doğum Süreleri") + ylab("Frekanslar") +
ggtitle("Doğum Süreleri Dağılımı") +
scale_fill_discrete(name = "Doğum Süreleri")+
xlab("Doğum Süreleri Kategorileri")+
ylab("Sıklıklar")
Gerçekleşen doğumlarda en çok normal günler içinde (Healthy) süren gebelikler olduğunu görürüz.
parity değişkeni
ggplot(train,aes(parity))+
geom_bar()
ggplot(train,aes(parity))+
geom_bar(aes(fill=parity))+
xlab("Önceden Doğum Yapma Durumu") + ylab("Frekanslar") +
ggtitle("Önceden Doğum Yapma Durumu Dağılımı") +
scale_fill_discrete(name = "Önceden Doğum Yapma Durumu")+
xlab("Önceden Doğum Yapma Durumu Kategorileri")+
ylab("Sıklıklar")
Önceden doğum yapmayan annelerin fazla olduğunu görmekteyiz.
smoke değişkeni
ggplot(train,aes(smoke))+
geom_bar()
ggplot(train,aes(smoke))+
geom_bar(aes(fill=smoke))+
xlab("Sigara İçme Durumu") + ylab("Frekanslar") +
ggtitle("Sigara İçme Durumu Dağılımı") +
scale_fill_discrete(name = "Sigara İçme Durumu")+
xlab("Sigara İçme Durumu Kategorileri")+
ylab("Sıklıklar")
Sigara içen annelerin sayısı daha fazladır.
gestation değişkeni, doğum sürelerini ifade etmekteydi. Bu değişkeni bağımlı gibi düşünerek grafikleri oluşturalım.
gestation ve parity
ggplot(train,aes(gestation, fill=parity))+
geom_bar(position=position_dodge())+
ggtitle("Doğum Sürelerinin Önceden Doğum Yapma Dağılımı")+
xlab("Doğum Sürelerileri Kategori")+
ylab("Sıklıklar")+
scale_fill_discrete(name = "Önceden Doğum Yapma")+
theme(axis.title.x = element_text(color="black", face="bold", size=8),
axis.title.y = element_text(color="black", face="bold",size=8),
plot.title = element_text(hjust = 0.2,color="black", face="bold", size=14),
legend.title = element_text(colour="black",face="bold",size=8))
ggplot(train, aes(gestation, fill = parity)) +
geom_bar() +
geom_text(aes(label=..count..),stat="count",position=position_stack(0.8))
Erken doğan bebeklerin annelerinin; önceden doğum yapmayanların, önceden doğum yapanlara oranının daha fazla olduğunu görmekteyiz.
Sağlıklı sürede doğan bebeklerin annelerinin; önceden doğum yapmayanların, önceden doğum yapanlara oranının yaklaşık 3 kat fazla olduğunu görmekteyiz.
Geç doğan bebeklerin annelerinin; önceden doğum yapmayanların, önceden doğum yapanlara oranının daha fazla olduğunu görmekteyiz.
gestation ve smoke
ggplot(train,aes(gestation, fill=smoke))+
geom_bar(position=position_dodge())+
ggtitle("Doğum Sürelerinin Sigara İçme Dağılımı")+
xlab("Doğum Sürelerileri Kategori")+
ylab("Sıklıklar")+
scale_fill_discrete(name = "Sigara İçme")+
theme(axis.title.x = element_text(color="black", face="bold", size=8),
axis.title.y = element_text(color="black", face="bold",size=8),
plot.title = element_text(hjust = 0.2,color="black", face="bold", size=14),
legend.title = element_text(colour="black",face="bold",size=8))
Erken doğan bebeklerin annelerinin; sigara içmeyenlerinin, sigara içenlere oranının daha fazla olduğunu görmekteyiz.
Sağlıklı sürede doğan bebeklerin annelerinin; sigara içmeyenlerinin, sigara içenlere oranının daha fazla olduğunu görmekteyiz.
Geç doğan bebeklerin annelerinin; sigara içmeyenlerinin, sigara içenlere oranının daha fazla olduğunu görmekteyiz.
gestation ve parity
ggplot(train, aes(gestation, fill = parity)) +
geom_bar() +
geom_text(aes(label=..count..),stat="count",position=position_stack(0.8))
Erken doğan bebeklerin annelerinin; önceden doğum yapmayanların sayısı 61, önceden doğum yapanların sayısısnın 14 olduğunu görmekteyiz. Erken doğan bebeklerin annelerinin; önceden doğum yapmayanların, önceden doğum yapanlara oranı yaklaşık 4 kat fazladır.
Sağlıklı sürede doğan bebeklerin annelerinin; önceden doğum yapmayanların sayısı 599, önceden doğum yapanların sayısının 208 olduğunu görmekteyiz. Sağlıklı sürede doğan bebeklerin annelerinin; önceden doğum yapmayanların, önceden doğum yapanlara oranı yaklaşık 3 kat fazladır.
Geç doğan bebeklerin annelerinin; önceden doğum yapmayanların sayısı 74, önceden doğum yapanların sayısının 34 olduğunu görmekteyiz. Geç doğan bebeklerin annelerinin; önceden doğum yapmayanların, önceden doğum yapanlara oranı yaklaşık 2 kat fazladır.
gestation ve smoke
ggplot(train, aes(gestation, fill = smoke)) +
geom_bar() +
geom_text(aes(label=..count..),stat="count",position=position_stack(0.8))
Erken doğan bebeklerin annelerinin; sigara içmeyenlerinin sayısı 48, sigara içenlerin sayısısnın 27 olduğunu görmekteyiz. Erken doğan bebeklerin annelerinin; sigara içmeyenlerinin, sigara içenlere oranının yaklaşık 2 kat fazladır.
Sağlıklı sürede doğan bebeklerin annelerinin; sigara içmeyenlerinin sayısı 474, sigara içenlerin sayısının 333 olduğunu görmekteyiz. Sağlıklı sürede doğan bebeklerin annelerinin; sigara içmeyenlerinin, sigara içenlere oranı daha fazladır.
Geç doğan bebeklerin annelerinin; sigara içmeyenlerinin sayısı 69, sigara içenlerin sayısının 39 olduğunu görmekteyiz. Geç doğan bebeklerin annelerinin; sigara içmeyenlerinin, sigara içenlere oranının yaklaşık 2 kat fazladır.
gestation ve parity
library(dplyr)
tra_pct <- train %>% group_by(gestation, parity) %>%
dplyr::summarise(count=n()) %>%
mutate(pct=round(count/sum(count),2))
## `summarise()` has grouped output by 'gestation'. You can override using the
## `.groups` argument.
ggplot(tra_pct, aes(gestation, pct, fill = parity)) +
geom_bar(stat='identity') +
geom_text(aes(label=scales::percent(pct)), position = position_stack(vjust = .5))+
scale_y_continuous(labels = scales::percent)
Erken doğan bebeklerin annelerinin; önceden doğum yapmayanların oranı %81, önceden doğum yapanların oranı %19’dur.
Sağlıklı sürede doğan bebeklerin annelerinin; önceden doğum yapmayanların oranı %73, önceden doğum yapanların oranı %26’dır.
Geç doğan bebeklerin annelerinin; önceden doğum yapmayanların oranı %69, önceden doğum yapanların oranı %31’dir.
gestation ve smoke
library(dplyr)
tra_pct <- train %>% group_by(gestation, smoke) %>%
dplyr::summarise(count=n()) %>%
mutate(pct=round(count/sum(count),2))
## `summarise()` has grouped output by 'gestation'. You can override using the
## `.groups` argument.
ggplot(tra_pct, aes(gestation, pct, fill = smoke)) +
geom_bar(stat='identity') +
geom_text(aes(label=scales::percent(pct)), position = position_stack(vjust = .5))+
scale_y_continuous(labels = scales::percent)
Erken doğan bebeklerin annelerinin; sigara içmeyenlerinin oranı %64, sigara içenlerin oranı %36’dır.
Sağlıklı sürede doğan bebeklerin annelerinin; sigara içmeyenlerinin oranı %59, sigara içenlerin oranı %41’dir.
Geç doğan bebeklerin annelerinin; sigara içmeyenlerinin oranı %64, sigara içenlerin oranı %36’dır.
gestation değişkeni
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:Hmisc':
##
## subplot
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
cross<-as.data.frame(prop.table(table(train$gestation)))
colnames(cross)[1] <- "gestation"
plot_ly(cross, labels = ~gestation, values = ~Freq, type = 'pie')%>% layout(title ='Doğum Süreleri Dağılımı')
Bebeklerinin doğum sürelerinin %81.5 sağlıklı, %10.9 geç doğum ve %7.58 erken doğum olduğu görünmektedir.
parity değişkeni
library(plotly)
cross<-as.data.frame(prop.table(table(train$parity)))
colnames(cross)[1] <- "parity"
plot_ly(cross, labels = ~parity, values = ~Freq, type = 'pie')%>% layout(title ='Annelerin Doğum Bilgisi Dağılımı')
Annelerin %74.1’i daha önceden doğum yapmayanlar, %25.9’u ise önceden doğum yapanlardan oluşmaktadır.
smoke değişkeni
library(plotly)
cross<-as.data.frame(prop.table(table(train$smoke)))
colnames(cross)[1] <- "smoke"
plot_ly(cross, labels = ~smoke, values = ~Freq, type = 'pie')%>% layout(title ='Annelerin Sigara Dağılımı')
Annelerin %59.7’si sigara içmeyenler, %40.3’ü ise sigara içenlerden oluşmaktadır.
Saçılım çizimi, iki nicel değişken arası ilişki ve dağılımı verir. Bağımlı değişkenimiz bebeklerin doğum ağırlıkları (bwt) olduğu için diğer değişkenler ile arasındaki ilişki bizim için önemlidir.
loess: yerel olarak ağırlıklandırılmış regresyon x ile y arası eğilimin nasıl oldugunu daha iyi gösterir. Aralarındaki örüntüye göre eğri geçirir. Bu sebeple method olarak loess’i kullanacağız.
bwt ve age
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ tibble 3.1.8 ✔ purrr 1.0.0
## ✔ tidyr 1.2.1 ✔ stringr 1.5.0
## ✔ readr 2.1.3 ✔ forcats 0.5.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ psych::%+%() masks ggplot2::%+%()
## ✖ psych::alpha() masks ggplot2::alpha()
## ✖ plotly::filter() masks dplyr::filter(), mice::filter(), stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ✖ purrr::lift() masks caret::lift()
## ✖ dplyr::src() masks Hmisc::src()
## ✖ dplyr::summarize() masks Hmisc::summarize()
ggplot(train, aes(age,bwt))+
geom_point(size=2,shape=21,stroke=1,color="dodgerblue1", fill="white")+
geom_smooth(method = "loess", col="darkblue",se = FALSE)
## `geom_smooth()` using formula = 'y ~ x'
bwt değişkeni bebeklerin doğum ağırlıklarını ifade etmekteydi. Annelerin yaşları arttıkça bebeklerin doğum ağırlıklarının değişkeninin pek de değişmediğini gözlemleriz.
bwt ve height
library(tidyverse)
ggplot(train, aes(height,bwt))+
geom_point(size=2,shape=21,stroke=1,color="dodgerblue1", fill="white")+
geom_smooth(method = "loess", col="darkblue",se = FALSE)
## `geom_smooth()` using formula = 'y ~ x'
Annelerin boyları 140 cm’den 150 cm’e doğru arttıkça bebeklerin doğum ağırlıklarında azalma görünmüştür. Annelerin boyları 150 cm’den sonra arttıkça bu sefer bebeklerin ağırlıklarında da artış gözlemlenmiştir.
bwt ve weight
library(tidyverse)
ggplot(train, aes(weight,bwt))+
geom_point(size=2,shape=21,stroke=1,color="dodgerblue1", fill="white")+
geom_smooth(method = "loess", col="darkblue",se = FALSE)
## `geom_smooth()` using formula = 'y ~ x'
Yoğunluk grafiğinde “Annelerin kiloları 45-65 kg aralığında yoğunlaşmaktadır.” yorumunu yapmıştır. Yukarıdaki grafikte de benzeri bir yorumu (daha doğru aralıklar ile) yapabiliriz.
Annelerin ağırlıkları yaklaşık 55’e doğru artarken bebeklerin ağırlıklarında da artış görünmektedir. Ancak annelerin ağırlıkları 55’den sonra artmaya devam ederken bebeklerin ağırlıkları için net bir yorum yapılamaz. Hemen hemen düz bir doğru ile devam eder. Annenin kilosu 90’ı geçip artmaya devam ederken de bebeklerin ağırlıklarında ufak artışlar görünmektedir.
gestation değişkeni bebeklerin anne karnında kalma sürelerini gösteren değişkendi. gestation değişkeni kırılımı ile scatter plotları inceleyelim.
bwt & age & gestation
ggplot(train, aes(age,bwt, color=gestation, shape=gestation))+
geom_point(size=3,alpha=0.6)
4 kilo ve üzeri bebeklerde erken doğuma oldukça az rastlandığını görmekteyiz. Zaten erken doğan bebeklerde kilolarına 4 ve üzerine rastlanması, diğer sürelere göre daha az mümkün duruyor. 2 kilo ve altında olan bebeklerde de erken doğum olduğunu görmekteyiz. Bu da bebeklerin gelişim süreci ile ilgili olarak yorumlanabilir.
Annelerin yaşları 40’ı geçtikten sonra genel olarak rastlanana doğum da sağlıklı sürede gerçekleşen doğum olarak yorumlanabilir.
bwt & height & gestation
ggplot(train, aes(height,bwt, color=gestation, shape=gestation))+
geom_point(size=3,alpha=0.6)
Grafiğin en sol kısmında yer alan gözlemler, potansiyel aykırı değer olarak yorumlanabilir. Dikkat çeken bir diğer nokta ise annelerin boylarının 180 cm ve üzeri olduğu yerlerde yalnızca sağlıklı sürede olan gebelik sürelerinin yer almasıdır.
bwt & weight & gestation
ggplot(train, aes(weight,bwt, color=gestation, shape=gestation))+
geom_point(size=3,alpha=0.6)
İlk bakışta, grafiğin en sağında yer alan gözlemin potansiyel aykırı değer olabileceğini düşünebiliriz. Grafikte yoğunluk, annelerin ağırlıklarının 40-70 kg olduğu alandadır. Annelerin kilosu 90’ı geçtikten sonra geç doğuma rastlanılmamıştır. Ayrıca, annelerin kilosu arttıkça, erken doğumların azaldığı yorumunda bulunabiliriz.
bwt ve age
ggplot(train,aes(x=age,y=bwt))+
geom_point(size=1)+
geom_text(label=rownames(train),nudge_x=0.25,nudge_y=0.25, check_overlap=T)+
geom_smooth(method=lm,col="red",se=FALSE)
## `geom_smooth()` using formula = 'y ~ x'
Dağılım oldukça yoğun olduğu için potansiyel aykırı değerlerin gözlem numaraları tam olarak belli olmuyor. Ancak en solda yer alan 505. gözlem, 913. ve dağılımın alt-üst ksıımlarında kalan gözlemler de potansit-yel aykırı değer olabilirler. Bu kadar fazla potansiyel aykırı değer düşünmemizin sebebi, boxplotlarda da çok fazla potansiyel uç değerlere rastlamamızdır.
bwt ve height
ggplot(train,aes(x=height,y=bwt))+
geom_point(size=1)+
geom_text(label=rownames(train),nudge_x=0.25,nudge_y=0.25, check_overlap=T)+
geom_smooth(method=lm,col="red",se=FALSE)
## `geom_smooth()` using formula = 'y ~ x'
En çok göze çarpan değer 435 (ve hemen sağ altında kalan diğer gözlem) potansiyel aykırı değer olabilir. Yine grafiğin alt ve üstünde seyrek değerlere rastlanmaktadır.
bwt ve weight
ggplot(train,aes(x=weight,y=bwt))+
geom_point(size=1)+
geom_text(label=rownames(train),nudge_x=0.25,nudge_y=0.25, check_overlap=T)+
geom_smooth(method=lm,col="red",se=FALSE)
## `geom_smooth()` using formula = 'y ~ x'
En çok göze çarpan değer olan 150. gözlem potansiyel aykırı değerdir.
Grafiklerin çarpıklıkları da yorumlamamız için belirsizlik yaratmaktadır. Dönüşüm uyglandıktan sonmra bu durumlar tekrar gözden geçirilecektir.
Potansyel aykırı değer olabilir, şeklinde yorumladığımız gözlemlere bu grafikler ile daha detaylı inceleme yapabiliriz.
bwt & age & gestation
library(plotly)
d_plot <- ggplot(train, aes(age, bwt, fill=gestation, shape=gestation)) +
geom_point(position = position_jitter(width= 0.2, height = 0), size = 2)
ggplotly(d_plot)
Potansiyel aykırı değer olabilir diye yorumladığımız gözlemlere göz atalım. 505. gözlemde; annenin yaşı 15’dir. Diğer değişken özellikleri sağlıklı kabul ettiğimiz sınırlarda olsa bile annenin yaşının küçüklüğü, aykırı değerliğe sebep olabilir. 913. ve hemen altındaki gözlemlerde; erken doğum olduğunu görmekteyiz. Bu da aykırı değerliğe sebep olabilir.
bwt & height & gestation
library(plotly)
d_plot <- ggplot(train, aes(height, bwt, fill=gestation, shape=gestation)) +
geom_point(position = position_jitter(width= 0.2, height = 0), size = 2)
ggplotly(d_plot)
bwt & weight & gestation
library(plotly)
d_plot <- ggplot(train, aes(weight, bwt, fill=gestation, shape=gestation)) +
geom_point(position = position_jitter(width= 0.2, height = 0), size = 2)
ggplotly(d_plot)
bwt ve age
library(ggExtra)
gr <- ggplot(train,aes(x=age,y=bwt))+
geom_point()+
geom_text(size=3,label=rownames(train),nudge_x=0.25,
nudge_y=0.25, check_overlap=T)+
geom_smooth(method=loess,col="yellow", se=FALSE)
ggMarginal(gr,type="histogram",fill="lightseagreen")
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
Annelerin yaşları 40’ı geçtikten sonra, yaşları artarken bebeklerin doğum ağırlıklarında hafif bir artış gözlemlemiştik. Kontrol ettiğimizde annelerin yaşlarının histogram grafiğinin de sağa çarpık olduğunu görmekteyiz. Bebeklerin doğum ağırlıklarının histogramı ise normale yakındı. Annelerin yaşları arttıkça bebeklerinin ağırlığının pek de değişmemesinin sebebi bu olabilir.
bwt ve height
library(ggExtra)
gr <- ggplot(train,aes(x=height,y=bwt))+
geom_point()+
geom_text(size=3,label=rownames(train),nudge_x=0.25,
nudge_y=0.25, check_overlap=T)+
geom_smooth(method=loess,col="violetred1", se=FALSE)
ggMarginal(gr,type="histogram",fill="lightseagreen")
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
Annelerin boylarının histogramında sola çarpıklık var. Annelerin boylarının 150 cm’e kadar olan bölgede (150 cm’e kadar artarken) bebeklerin ağırlıklarının azalmasının sebebi bu olabilir.
bwt ve weight
library(ggExtra)
gr <- ggplot(train,aes(x=weight,y=bwt))+
geom_point()+
geom_text(size=3,label=rownames(train),nudge_x=0.25,
nudge_y=0.25, check_overlap=T)+
geom_smooth(method=loess,col="green", se=FALSE)
ggMarginal(gr,type="histogram",fill="lightseagreen")
## `geom_smooth()` using formula = 'y ~ x'
## `geom_smooth()` using formula = 'y ~ x'
Annelerin ağırlıklarının histogramına baktığımızda 150. gözlemin aykırı/uç değer olma ihtimalinin arttığını görmekteyiz.
bwt & age & height
library(ggplot2)
ggplot(train, aes(age,bwt, color=height, size=height))+
geom_point(alpha=0.5, stroke=2)+
scale_size(range = c(1, 8))+
scale_color_gradient(low = "blue", high = "lightpink")
Kabarcık çizimi, saçılım çiziminin farklı bir versiyonudur. Annelerin yaşlarına karşı, bebeklerin doğum ağırlıklarını, annelerin boylarına göre çizdirdik. En düşük boylar mavi, en yüksek boylar pembe ile gösterilmektedir. Annelerin yaşları arttıkça bebeklerin doğum ağırlığında net bir değişim gözlemlenmemiştir.
bwt & age & weight
library(ggplot2)
ggplot(train, aes(age,bwt, color=weight, size=weight))+
geom_point(alpha=0.5, stroke=2)+
scale_size(range = c(1, 8))+
scale_color_gradient(low = "blue", high = "lightpink")#scale_color_gradientn(colours = rainbow(5))
Annelerin yaşlarına karşı, bebeklerin doğum ağırlıklarını, annelerin kilolarına göre çizdirdik. En düşük kilolar mavi, en yüksek kilolar pembe ile gösterilmektedir. Annelerin yaşları arttıkça bebeklerin doğum ağırlığında net bir değişim gözlemlenmemiştir.
bwt & height & weight
library(ggplot2)
ggplot(train, aes(height,bwt, color=weight, size=weight))+
geom_point(alpha=0.5, stroke=2)+
scale_size(range = c(1, 8))+
scale_color_gradient(low = "blue", high = "lightpink")#scale_color_gradientn(colours = rainbow(5))
Annelerin boylarına karşı, bebeklerin doğum ağırlıklarını, annelerin kilolarına göre çizdirdik. En düşük kilolar mavi, en yüksek kilolar pembe ile gösterilmektedir. En soldaki 2 gözlem, potansiyel uç değer olarak yorumlanabilir. Annelerin boyları arttıkça kilolarının azaldığını görmekteyiz (renk maviden pembeye doğru geçiyor).
bwt ve age
library(hexbin)
ggplot(train,aes(x=age,y=bwt))+
geom_hex(bins=20, color = "white")+
scale_fill_gradient(low="mistyrose2", high="violetred3")
Gözlemler gruplanarak açıktan koyuya doğru, içerdeki gözlem sayısına göre grafik haline getirilmiştir. Kontrol ettiğimizde 20-30 yaş arasında yoğunluk olduğunu görmekteyiz.
table(train$age)
##
## 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
## 1 7 13 48 44 56 64 72 74 55 74 73 56 54 47 34 32 35 25 25 20 25 14 17 10 7
## 42 43 44
## 3 4 1
Annelerin yaşlarını yukarıdaki şekilde tablo ile incelersek 19-35 yaş aralığında frekansların yüksek olduğunu buradan da teyit edebiliriz.
bwt ve height
library(hexbin)
ggplot(train,aes(x=height,y=bwt))+
geom_hex(bins=20, color = "white")+
scale_fill_gradient(low="rosybrown2", high="darkorchid4")
Yoğunluğun, annelerin boylarının 150-170 cm aralıklarındayken olduğunu görebiliriz. Aralardaki dikey boşluklar, scatter plotta da gözlemlenmişti.
bwt ve weight
library(hexbin)
ggplot(train,aes(x=weight,y=bwt))+
geom_hex(bins=20, color = "white")+
scale_fill_gradient(low="peachpuff2", high="tan4")
Scatter plotta ve yoğunluk grafiğinde, “Annelerin kiloları 45-65 kg aralığında yoğunlaşmaktadır.” yorumunu yapmıştır. Yukarıdaki grafikte de aynı yorumu yapabiliriz. En sağda ise potansiyel uç/aykırı değer vardır.
bwt ve age
ggplot(train, aes(x=age, y=bwt) ) +
stat_density_2d(aes(fill = ..level..), geom = "polygon", colour="white")
Beyaz çizgiler ilişkiyi göstermektedir. Çizgilerin birbirine yakın olduğu ve elipsi andırdığı yerlerde ilişki vardır. Açılmalar ise değişen varyans olabileceğini gösterir. En çok en sağ kısımda göze çarpmaktadır.
bwt ve height
ggplot(train, aes(x=height, y=bwt) ) +
stat_density_2d(aes(fill = ..level..), geom = "polygon", colour="white")
bwt ve weight
ggplot(train, aes(x=weight, y=bwt) ) +
stat_density_2d(aes(fill = ..level..), geom = "polygon", colour="white")
bwt değişkeni bağımlı değişken olduğu için onu yazarken en sona yazmalıyız.
cor_train <- train[,c(4,5,6,1)]
library(GGally)
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
##
## Attaching package: 'GGally'
## The following object is masked from 'package:funModeling':
##
## range01
cor(cor_train)
## age height weight bwt
## age 1.00000000 0.02270474 0.1271443 0.03603991
## height 0.02270474 1.00000000 0.4495866 0.19409388
## weight 0.12714428 0.44958656 1.0000000 0.15923705
## bwt 0.03603991 0.19409388 0.1592370 1.00000000
plot(cor_train)
ggpairs(cor_train)
Grafikte otomatik olarak pearson korelasyonu kullanılmıştır. Pearson’ın varsayımlarında doğrusallık ve normallik vardır. Bunlar tam olarak sağlanmadığı için korelasyonları yorumlamak şuan için doğru olmaz.
library(PerformanceAnalytics)
## Zorunlu paket yükleniyor: xts
## Zorunlu paket yükleniyor: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Attaching package: 'xts'
## The following objects are masked from 'package:dplyr':
##
## first, last
##
## Attaching package: 'PerformanceAnalytics'
## The following objects are masked from 'package:moments':
##
## kurtosis, skewness
## The following object is masked from 'package:graphics':
##
## legend
cor_train <- train[,c(4,5,6,1)]
chart.Correlation(cor_train, histogram=TRUE, pch=19)
Sayıların boyut ve kalınlıklarına göre ilişkinin kuvveti yorumlanır. Örneğin 0.44 en kalın ve en büyük olandır. Ancak korelasyon az önceki sebeplerden ötürü yorumlanmaz.
O halde farklı methodlar deneyelim.
kendall methodu kullanalım.
cor_train <- train[,c(4,5,6,1)]
chart.Correlation(cor_train, histogram=TRUE, pch=19, method = "kendall")
Histogramlara bakarsak; bwt normale oldukça yakın, weight ve age değişkenlerinde sağa çarpıklık, height değişkeninde ise sola çarpıklık var.
Saçılımlara loess eğrisi eklenmiştir. Daha önce de yorumlandıkları gibidir.
Korelasyonlara bakarsak; Bebeklerin doğum ağırlıkları ile en kuvvetli ilişki annelerin boyları ve kiloları arasında bulunmuştur.
Annelerin boyları ve kiloları arasında kendi içlerinde de ilişki vardır.
Bebekleri doğum ağırlıkları ile annelerin yaşları arasında oldukça az ilişki vardır.
Boxplotları da ekleyelim.
GGally::ggpairs(train[,c(1,4,5,6,2)], aes(color = gestation))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
gestation değişkeni, bebeklerin doğuma kadar geçen sürelerinin yer aldığı ve sonradan kategorik hale getirdiğimiz değişkendi. gestation kırılımında inceleme yapacağız.
bwt değişkeni için histograma baktığımızda, sağlıklı sürede doğa bebeklerin dağılımının, diğerlerine göre sivri olduğunu görmekteyiz. En basık dağılım, geç doğan bebeklere ait gibi görünmektedir. Ayrıca, yine geç doğan bebeklerde hafif bir çok tepelilik var gibi görünüyor. Boxplota bakarsak bebeklerin doğum ağırlıkları arttıkça doğum süreleri de artmaktadır. Bu artış erken doğumdan sağlıklı doğuma geçerken oldukça hızlı ancak sağlıklıdan geç doğuma geçerken daha yavaş görünmektedir. Bebeklerin doğum kiloları incelendiği için oldukça doğal bir durumdur.Ayrıca sağlıklı sürede doğan bebeklerde oldukça fazla uç değer vardır.
age değişkeni için histogramlar benzerdir. Yine sağlıklı sürede doğan bebeklerde hafif sivrilik görünmektedir. Hepsinde sağa çarpıklık var gibi gözükmektedir. Boxplotların ortancaları birbirine oldukça yakındır. Bu da aralarında çok az ilişki olduğunu gösterir. Yine sağlıklı doğan bebeklerde uç değerler vardır.
height değişkeninde ise 3 histogramda da sola çarpıklık gözükmektedir. Boxplotlara bakıldığında iişki yok denilebilecek kadar az gibi görünmektedir. Sağlıklı sürede doğan bebeklerde yine uç değerler vardır.
weight değişkeninde tüm histogramlar sağa çarpık gibi görünüyor. Ancak en sivri dağılım bu sefer erken doğan bebeklerde gibi görünmektedir. Boxplotlara bakıldığında tüm kategorierde uç değerler vardır. Erken doğumdan sağlıklı doğuma geçerken annelerin kilolarında hafif bir azalış, sağlıklı doğumdan geç doğuma geçerken ise hafif bir artış gözlemlenmektedir.
pl <- function(x, y, pch=20, col=1, ...) {
points(x=x, y=y, col=col, pch=pch, type="p", ...)
lines(lowess(x=x, y=y), col="blue")
warning = FALSE}
coplot(bwt~age|height, col="black", data=train,panel=pl)
coplot(bwt~age|gestation, col="black", data=train, panel=pl, rows=1)
coplot(bwt~age|smoke*parity, data=train, col="black",panel=pl)
grafik seti için; Boyların aralıklarına bakarsak, hemen hepsinde sağa doğru gidildikçe yoğunluğun azaldığını görebiliriz. Yoğunluktan uzakta olan belli başlı gözlemler, potansiyel aykırı gözlem olabilirler. Örneğin alta ve en sağda olan grafiğe bakarsak, 4 gözlemin en üstte ayrı ayrı yer aldıklarını görürüz. Potansiyel aykırı değerlerdir.
grafik seti için; Erken doğum, sağlıklı doğum ve geç doğumlar kullanılmıştır. Genel bakışta sağlıklı doğumda yoğunluğun fazla olduğunu görebiliriz. Ayrıca annelerin yaşları arttıkça bebeklerin doğum ağırlığında da (eğrilere bakınca) j-hafif bir artışı buradan gözlemleyebiliriz.
grafik seti için; smoke ve parity etkileşimi yani annelerin sigara kullanımı ve daha önce doğum yapma durumları eklenmiştir. Önceden doğum yapmayanların yoğunluğunun daha fazla olduğunu görmekteyiz.
library(corrplot)
## corrplot 0.92 loaded
corrplot(cor(train[,c(4,1,5,6)]), method = "ellipse")
corrplot.mixed(cor(train[,c(1,4,5,6)]), lower = "number",
upper = "square",tl.col = "black")
Şekiller kareye ya da elipe ne kadar benzer ise ilişki de o kadar fazladır. Baktığımızda en çok ilişki annelerin boyları ve kiloları arasında görünmektedir. bwt değişkeni için de en fazla ilişki annelerin boylarında görünmektedir. Ancak doğrusallık ve normallik olmadığı için yorumlamak da pek doğru olmaz.
O halde kendall ile grafiği çizelim.
library(corrplot)
corrplot(cor(train[, c(4,1,5,6)], method = "kendall"), method = "ellipse")
corrplot.mixed(cor(train[, c(1,4,5,6)], method = "kendall"), lower = "number",
upper = "square", tl.col = "black")
grafik için; En yüksek ilişki annelerin kiloları ve boyları arasında görülmüştür. Bağımlı değişken bwt’ye bakacak olursak en yüksek ilişkisi annelerin kiloları ile en düşük ilişkisi ise annelerin yaşları iledir. Yani bebeklerin doğum ağırlıkları, annelerin ağırlıkları ile yüksek ilişki gösterirken annelerin yaşları ile düşük ilişk göstermiştir.
grfaik için; bwt değişkeninin ilişki sayısına bakarsak, annelerin yaşları ile 0.16 , annelerin boyları ile 0.13 , anenlerin yaşları ile 0.03’lük ilişki göstermektedir. En yüksek ilişkinin annelerin boyları ile olduğunu elips grafiğinde de söylemiştik. 0.16 değeri, diğer değişkenlere göre daha yüksektir ancak genel anlamda çok da kuvvaetli bir ilişki sayılmaz.
Öncelikle gestation gruplarına göre bwt üzerinden ortanca ve dag bulalım;
m <- train %>% group_by(gestation) %>%
summarise(q1 = quantile(bwt, probs = 0.25),
ortanca = quantile(bwt, probs = 0.50),
q3 = quantile(bwt, probs = 0.75),
DAG = q3 - q1)
m
## # A tibble: 3 × 5
## gestation q1 ortanca q3 DAG
## <fct> <dbl> <dbl> <dbl> <dbl>
## 1 Early 2.44 2.84 3.27 0.829
## 2 Healthy 3.12 3.40 3.71 0.595
## 3 Late 3.25 3.56 3.91 0.659
Ortanca izi çizimi yapalım;
plot(m$gestation, m$ortanca, xlab="Gestation Kategorileri", ylab="Ortanca", main="Ortanca izi Çizimi")
Bebeklerin anne karnında kalma süreleri arttıkça ortancanın da arttığını görebiliriz. Özellikle erken doğumdan sağlıklı sürede doğuma geçerken yüksek bir artış bulunmaktadır.
Farklı bir yol ile de çizebiliriz;
library(ggplot2)
ggplot(m, aes(gestation, ortanca))+
geom_point(size=3,alpha=0.6)
Bebeklerin anne karnında kalma süreleri arttıkça ortancanın da arttığını görebiliriz. Özellikle erken doğumdan sağlıklı sürede doğuma geçerken yüksek bir artış bulunmaktadır.
Farklı bir şekilde daaha görebiliriz;
ggplot(train, aes(x=gestation,y=bwt, fill=gestation))+
geom_boxplot()+
stat_summary(fun = median, geom="line", group= 1, color= "black", size = 1)
Bebeklerin anne karnında kalma süreleri arttıkça ortancanın da arttığını görebiliriz. Özellikle erken doğumdan sağlıklı sürede doğuma geçerken yüksek bir artış bulunmaktadır. Bebeklerin doğum süreleri arttıkça bebeklerin doğum ağırlıkları da artmıştır. Bu durum, doğrusal bağlantıya işaret edebilir.
ggplot(m, aes(x=ortanca, y=DAG, color=gestation, group=1))+
geom_point(size=4,alpha=0.6)+
geom_line(color="black")
Erken doğumdan sağlıklı doğuma kadar olan aralıkta, konum arttıkça yayılım azalmıştır. Ancak Sağlıklı doğumdan geç doğuma geçerken konum arttıkça yayılım da artmıştır.
gestation ile smoke değişkenleri ile etkileşim grafiği çizelim.
etk_train <- train%>%
group_by(smoke,gestation)%>%
summarise(Median=median(bwt))
## `summarise()` has grouped output by 'smoke'. You can override using the
## `.groups` argument.
etk_train
## # A tibble: 6 × 3
## # Groups: smoke [2]
## smoke gestation Median
## <fct> <fct> <dbl>
## 1 No Early 2.98
## 2 No Healthy 3.52
## 3 No Late 3.60
## 4 Yes Early 2.61
## 5 Yes Healthy 3.26
## 6 Yes Late 3.52
ggplot(etk_train, aes(x = gestation, y = Median, color=smoke, group=smoke)) +
geom_line() +
geom_point()
Öncelikle ilgili alanın medyanlarını hesapladık.
Etkileşim grafiğinde paralellik varsa, etkileşim yoktur. Erken doğumdan sağlıklı doğuma geçerken etkileşim yoktur. Ancak sağlıklı doğumdan geç doğuma geçerken etkileşim olabilir.
tab <- xtabs(~ parity + gestation + smoke, data = train)
ftable(tab)
## smoke No Yes
## parity gestation
## No Early 39 23
## Healthy 351 247
## Late 43 31
## Yes Early 10 4
## Healthy 123 85
## Late 25 9
Daha önce doğum yapmayan annelerin; + Erken doğum yapanlarının sigara içmeyenlerinin sayısı 38, sigara içenlerinin sayısı 23’tür. + Sağlıklı sürede doğum yapanlarının sigara içmeyenlerinin sayısı 351, sigara içenlerinin sayısı 248’dir. + Geç doğum yapanlarının sigara içmeyenlerinin sayısı 44, sigara içenlerinin sayısı 30’dur.
Daha önce doğum yapan annelerin; + Erken doğum yapanlarının sigara içmeyenlerinin sayısı 10, sigara içenlerinin sayısı 4’tür. + Sağlıklı sürede doğum yapanlarının sigara içmeyenlerinin sayısı 123, sigara içenlerinin sayısı 85’tir. + Geç doğum yapanlarının sigara içmeyenlerinin sayısı 25, sigara içenlerinin sayısı 9’dur.
library(ggplot2)
library(ggmosaic)
##
## Attaching package: 'ggmosaic'
## The following object is masked from 'package:GGally':
##
## happy
ggplot(train) +
geom_mosaic(aes(x = product(parity, smoke), fill=parity)) +
labs(x = "Sigara ", title='f(Doğum Süreleri, Sigara|Önceden Doğum Yapma)') +
facet_grid(gestation~.)
gestation değişkeni, kategorilerine göre 3 bölüme ayrılmıştır. Değişkenin 3 kategorisinde de yani bebeklerin; erken, sağlıklı ve geç olmak üzere tüm doğum kategorileri için, annelerinde sigara içmeme oranı ve ilk doğumlarını yapma oranı fazladır.
Erken doğan bebekler için; + Annelerde sigara içmeme durumu daha fazladır. Ayrıca sigara içmeyen annelerin önceden doğum yapma oranı, sigara içen annelere göre daha fazladır.
Sağlıklı doğan bebekler için; + Annelerde sigara içmeme durumu daha fazladır. Erken doğum yapan annelere kıyasla sigara içen sayısı daha fazladır. Ayrıca sigara içmeyen annelerin önceden doğum yapma oranı, sigara içen anneler ile neredeyse eşittir.
Geç doğan bebekler için; + Annelerde sigara içmeme durumu daha fazladır. Ayrıca sigara içmeyen annelerin önceden doğum yapma oranı, sigara içen annelere göre daha fazladır.
Bu grafik, her bireye ait yüz çizmektedir. Her öge, bir değişkeni ifade eder. Gözlemler çok olduğu için biz gözlemler kategoriymiş gibi alacağız. Bu anlamda ortalama da kullanılacaktır.
Train veri setinden bebeklerin doğum sürelerine(gestation) göre bebeklerin doğum ağırlıklarının(bwt), annelerin boylarının(height), annelerin yaşlarının(age) ortalamalarını aldık. Bunu veri kümesi gibi düşünüp yüzü çizdirebiliriz.
faces fonksiyonuna veriyi yazıp kategorik değişkeni çıkarırız.
library(aplpack)
library(dplyr)
chern_data <- train%>%
group_by(gestation) %>%
dplyr::summarize(mean_bwt = mean(bwt),mean_boy = mean(height), mean_yas = mean(age))
faces(chern_data[,-1], labels=as.character(chern_data$gestation))
## effect of variables:
## modified item Var
## "height of face " "mean_bwt"
## "width of face " "mean_boy"
## "structure of face" "mean_yas"
## "height of mouth " "mean_bwt"
## "width of mouth " "mean_boy"
## "smiling " "mean_yas"
## "height of eyes " "mean_bwt"
## "width of eyes " "mean_boy"
## "height of hair " "mean_yas"
## "width of hair " "mean_bwt"
## "style of hair " "mean_boy"
## "height of nose " "mean_yas"
## "width of nose " "mean_bwt"
## "width of ear " "mean_boy"
## "height of ear " "mean_yas"
‘effect of variables’ kısmında, ilgili açıklamalar yer alır.
YORUM:
height of face, height of mouth, height of eyes, width of hair, width of nose => mean_bwt: Yüzlerin, ağızların, gözlerin uzunluğu ve saçların, burnun genişliği; bwt değişkeninin, yani bebeklerin doğum ağırlıklarının ortalamaları ile ilişkilidir. Erken doğumdan geç doğuma yüzlerin, ağızın, gözlerin uzunluklarının ve saçlar ile burnun genişliklerinin arttığını görürüz. Bu da, erken doğumdan geç doğuma doğru bebeklerin doğum ağırlıklıkları ortalamalarının arttığı anlamına gelir.
width of face, width of mouth, width of eyes, style of hair, width of ear => mean_boy: Yüzlerin, ağızların, gözlerin, kulakların genişliği ve saçların şekli; annelerin boy ortalamaları ile ilişkilidir. Erken doğumdan geç doğuma doğru yüzlerin, ağızların, gözlerin, kulakların genişliği ve saçların şeklinin arttığını görürüz. Bu da, erken doğumdan geç doğuma doğru annelerin boy ortalamalarının arttığı anlamına gelir.
structure of face, smiling, height of hair, height of nose, height of ear => mean_yas: Yüz yapısı, gülümseme ile saçların, burunların, kulakların uzunlukları; annelerin yaş ortalamaları ile ilişkilidir. Geç doğum için verilen yüz şeklinin çene yapısının köşeli olmadığını görmekteyiz. Erken ve sağlıklı doğumlar için çene yapılarında geniş ya da sivri olsa da bazı hatlar mevcut. Bu durum geç doğan bebekler için oluşturulan yüzde yok. Geç doğan bebeklerin annelerinin yaş ortalamalarının, diğerlerine göre daha homojen olduğunu düşünebiliriz. Aynı şekilde gülümsemeye bakarsak; erken ve sağlıklı doğan bebeklerin hiç gülmediğini, geç doğan bebeklerin çok hafif güldüğünü görürüz. Geç doğan bebeklerin annelerinin yaşları daha büyüktür. Erken doğumdan geç doğuma doğru saçların, burunların, kulakların uzunluklarında artış görünmektedir. Bu da, erken doğumdan geç doğuma doğru annelerin yaş ortalamalarının arttığı anlamına gelir.
data_sorted <- train[order(-train$bwt),]
Çok gözlem olduğu için veriyi 10 gruba ayırırp bwt’ye göre sıraladık. Grup arttıkça bwt de artacak.
Her bir grupta annelerin yaşlarının, boylarının ve bebeklerin ağırlıklarının ortalamalarını alacağız. Böylece her bir grubun, bir yıldız çizimi olacak.
library(ggplot2)
data_sorted$group <- as.numeric(cut_number(as.numeric(rownames(data_sorted)), 10))
library(dplyr)
data_star<-data_sorted %>%
group_by(group) %>%
dplyr::summarize(Yas= mean(age),Boy= mean(height),bwt= mean(bwt))
stars(data_star[,-1], key.loc = c(15,1.25),main = "Starplot",label=row.names(data_star),cex=.7)
Hangi gruplara ait çizim diğerleri ile benzer ?
6, 7, 8. gruptakilerin birbirine oldukça benzer olduğunu görürüz. Bunlar beraber kümelenebilir, yorumunu yapabiliriz.
Hiyerarşi yarattığımız için art arda gelen gruplar adına yorumda bulunabiliyoruz.
library(lattice)
library(dplyr)
age_filter <- filter(train,between(age,20,35))
xyplot(bwt ~ height | age, data = age_filter)
Çalışmaya başlarken sağlıklı anne olma yaşını 20-35 aralıklarında kabul edeceğimizi söylemiştik. Bu sebeple yaşı, 20-35 aralığı ile kısıtladık. Ve 20-35 kısıtını kırılım olarak alıp grafiği oluşturduk.
Sol en üstteki grafikte belki bir doğrusallık yakalanabilir. Onun haricinde, aykırı değerleri bulmak için de kullanışlı bir grafik oluşturmuş olduk.
Veri setimizi train ve test setlere ayırdıktan sonra gestation değişkenini, bebeklerin doğuma kadar geçen sürelerine göre kategorize etmiştik. Temel Bileşenler Analizi ve sonraki grafikler için, gestation değişkenine göre rasgele gözlemler seçelim. Değişken 3 kategoriden oluşmaktaydı. Her bir kategori için 7 tane rasgele değişken seçelim.
library(dplyr)
set.seed(123)
small_data <- train %>%
filter(gestation %in% c("Early", "Healthy", "Late")) %>%
group_by(gestation) %>%
sample_n(7)
Numerik olmayan değişkenleri çıkaralım.
small_data$gestation <- NULL
small_data$parity <- NULL
small_data$smoke <- NULL
Şimdi ise, bwt değişkenini ele alalım. Bebeklerin doğum ağırlıkları değişkenini, gözlemlermiş gibi satır isimleri olarak çekelim. Ve sütundan kaldıralım.
rownames(small_data) <- small_data$bwt
small_data <- small_data[,-1]
summary(small_data)
## age height weight
## Min. :19.00 Min. :152.4 Min. :44.10
## 1st Qu.:25.00 1st Qu.:157.5 1st Qu.:50.85
## Median :27.00 Median :162.6 Median :55.80
## Mean :27.81 Mean :163.4 Mean :57.04
## 3rd Qu.:33.00 3rd Qu.:170.2 3rd Qu.:63.00
## Max. :39.00 Max. :177.8 Max. :78.75
Korelasyon matrisi oluşturalım.
fit.pca <- prcomp( ~. , data = small_data, scale = TRUE)
Analizi yapıp sonucu kaydettik. şimdi çizimini yapalım.
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
fviz_pca_var(fit.pca, col.var="violetred4", repel = TRUE)
1. boyut için; Tüm değişkenler sağda kaldılar. Bu yüzden hepsi pozitiftir. 1. boyut için negatif değer görünmemektedir. Değişkenlerin kendi konumlarına göre yorum yapmak istersek, en az katkının age değişkeni tarafından olduğunu görürüz. Çünkü sıfıra en yakın olan değişken age’dir. En yüksek katkı ise height değişkenindedir. Çünkü eksene tam dik konumdadır.
2. boyut için; Age değişkeninin yükü pozitiftir. Weight değişkeninin yükü ise negatiftir. Height değişkenine bakarsak, çizgiye çok çok yakın olduğunu görürüz. Bu sebeple yükü de 0’a oldukça yakındır ve katkısı da bir o kadar azdır.
Yüklere bakalım;
fit.pca$rotation[,1:2]
## PC1 PC2
## age 0.2842140 -0.8982038
## height 0.7144961 -0.0347986
## weight 0.6393104 0.4381997
Boyutlara göre inceleme yaptığımızda; 1. boyut için büyükten küçüğe katkı sıralaması height, weight, age olarak bulunmuştur. 2. boyut için de yine sırasıyla age, weight ve height şeklindedir. Weğight ve height negatifte kaldıkları için - değer almışlardır. Ayrıca height’in katkısının ne kadar az olduğunu buradan da görebiliriz.
Height ve weight değişkenleri arasındaki açı oldukça azdır. Bu sebeple korelasyonlarının pek de düşük olmadığını buradan da yorumlayabiliriz.
İlk 6 gözlemi seçip çizim yapalım. Maksimum, minimum ve ortalama değerlerini de çizimden önce tek tek bulacağız.
sm <- small_data[1:6,]
col_max <- apply(sm, 2, max)
col_min <- apply(sm, 2, min)
col_mean <- apply(sm, 2, mean)
col_summary <- t(data.frame(Max = col_max, Min = col_min, Average = col_mean))
df <- as.data.frame(rbind(col_summary, sm))
df
## age height weight
## Max 34.00000 177.8000 65.250
## Min 21.00000 152.4000 49.500
## Average 28.66667 165.5233 55.275
## 1 21.00000 152.4000 51.750
## 2 25.00000 162.5600 50.850
## 3 33.00000 170.1800 58.500
## 4 30.00000 177.8000 65.250
## 5 34.00000 170.1800 55.800
## 6 29.00000 160.0200 49.500
Her değişken için bir radar grafiği oluşturacağız.
library(fmsb)
## Registered S3 methods overwritten by 'fmsb':
## method from
## print.roc pROC
## plot.roc pROC
library(scales)
##
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
##
## discard
## The following object is masked from 'package:readr':
##
## col_factor
## The following objects are masked from 'package:psych':
##
## alpha, rescale
par(mfrow = c(2,3))
for (i in 4:nrow(df)) {
radarchart(
df[c(1:3, i), ],
pfcol = c(alpha("gray",0.5),NA),
pcol= c(NA,"red"), plty = 1, plwd = 2,
title = row.names(df)[i]
)
warning = FALSE}
Grafiği çizip eş anlı görmek için satır, sütunu c(2,3) ile ayarladık.
Bu minik veri setinde gözlemler, bebeklerin doğum ağırlıklarından oluşturmaktaydı. Aynı şekilde grafik isimleri de bu ağırlıklardır. En içteki gri halka, ortalamaları temsil etmektedir. kırmızı çizgi ise gözlemlerin sahip olduğu bilgilerdir.
YORUM
2.4948 kg doğan bebeğin annesinin yaşı, boyu ve kilosu; ortalamanın altındadır. 3.8556 kg doğan bebeğin annesinin yaşı ortalama olarak görünmektedir. Boyu ortalamanın biraz altında, kilosu ise ortalamanın biraz üstündedir. 2.40975 kg doğan bebeğin annesinin yaşı ve boyu ortalamadan yüksek ancak kilosu hemen hemen ortalamadır. 2.97675 kg doğan bebeğin annesinin yaşı, boyu ve kilosu; ortalamanın üstündedir. 3.1752 kg doğan bebeğin annesinin yaşı ve boyu ortalamadan yüksek ancak kilosu hemen hemen ortalamadır. 2.4381kg doğan bebeğin annesinin yaşı ve kilosu, ortalamanın altındadır. Boyu ise hemen hemen ortalamadır.
Sonraki aşamalarda kolaylık olması açısından gözlemleri harfler ile adlandıralım. Sırasıyla;
2.4948 = a 3.8556 = b 2.40975 = c 2.97675 = d 3.1752 = e 2.4381 = f
şeklinde isimlendirelim.
rownames(sm) <- c("a", "b", "c", "d", "e", "f")
sm
## # A tibble: 6 × 3
## age height weight
## * <dbl> <dbl> <dbl>
## 1 21 152. 51.8
## 2 25 163. 50.8
## 3 33 170. 58.5
## 4 30 178. 65.2
## 5 34 170. 55.8
## 6 29 160. 49.5
Oluşturduğumuz 6 gözlemlik veri setinin transpozunu alalım.
library(tidyverse)
library(ggpubr)
library(tibble)
df <- t(sm) %>%
as.data.frame() %>%
rownames_to_column("Var")
df
## Var a b c d e f
## 1 age 21.00 25.00 33.00 30.00 34.00 29.00
## 2 height 152.40 162.56 170.18 177.80 170.18 160.02
## 3 weight 51.75 50.85 58.50 65.25 55.80 49.50
df_new <- df %>% pivot_longer(
cols = c(a, b , c , d , e , f),
names_to = "bwt",
values_to = "Value"
)
df_new
## # A tibble: 18 × 3
## Var bwt Value
## <chr> <chr> <dbl>
## 1 age a 21
## 2 age b 25
## 3 age c 33
## 4 age d 30
## 5 age e 34
## 6 age f 29
## 7 height a 152.
## 8 height b 163.
## 9 height c 170.
## 10 height d 178.
## 11 height e 170.
## 12 height f 160.
## 13 weight a 51.8
## 14 weight b 50.8
## 15 weight c 58.5
## 16 weight d 65.2
## 17 weight e 55.8
## 18 weight f 49.5
Artık lollipop grafiğini çizebiliriz.
ggdotchart(
df_new, x = "Var", y = "Value",
group = "bwt", color = "bwt",
add = "segment", position = position_dodge(0.3),dot.size=3,
sorting = "desc"
)
YORUM
2.4948 = a 3.8556 = b 2.40975 = c 2.97675 = d 3.1752 = e 2.4381 = f olarak isimlendirmiştik.
En yüksek boya sahip annenin bebeğinin ağırlığı, yeşil lollipop yani c = 2.40975’dir. En yüksek ağırlığa sahip annenin bebeğinin ağırlığı, turkuaz lollipop yani d = 2.97675’dir. En yüksek yaşa sahip annenin bebeğinin ağırlığı, mavi lollipop yani e = 3.1752’dir.
Bu incelemeyi bireysel de yapabiliriz;
ggdotchart(
df_new, x = "Var", y = "Value",
group = "bwt", color = "bwt",
add = "segment", position = position_dodge(0.3), size = 1, dot.size = 2,
sorting = "desc", facet.by = "bwt",
rotate = TRUE, legend = "none"
)
YORUM
2.4948 = a 3.8556 = b 2.40975 = c 2.97675 = d 3.1752 = e 2.4381 = f olarak isimlendirmiştik.
Kontrol ettiğimizde tüm gözlemler için annelerin boy, kilo ve yaşları birbirinden çok uzak durmuyor. + a, b ve f kilolarına sahip bebeklerin annelerinin boylarının, diğer annelerin boylarından biraz daha kısa olduğunu söyleyebiliriz. + a ve f kilolarına sahip bebeklerinin annelerinin yaşları da diğerlerin az görünmektedir. + Kilolara baktığımızda yine a ve f kilolarına sahip bebeklerin annelerinin kilolarının, diğerlerinden daha az olduğunu söyleyebiliriz.
Nitel değişkenlerimiz; gestation, parity ve smoke olmak üzere inceleme yapalım.
gestation değişkeni
freq(train$gestation)
## var frequency percentage cumulative_perc
## 1 Healthy 806 81.41 81.41
## 2 Late 108 10.91 92.32
## 3 Early 76 7.68 100.00
Doğumların %81.31’inin sağlıklı günlerde, %10.91’inin geç ve %7.78’inin erken doğum olduğunu görmekteyiz.
parity değişkeni
freq(train$parity)
## var frequency percentage cumulative_perc
## 1 No 734 74.14 74.14
## 2 Yes 256 25.86 100.00
Annelerin %74.14’ünün ilk doğumunu gerçekleştirdikleri, %25.86’sının ise ilk doğumun olmadığı görünmektedir.
smoke değişkeni
freq(train$smoke)
## var frequency percentage cumulative_perc
## 1 No 591 59.7 59.7
## 2 Yes 399 40.3 100.0
Annelerin %59.7’si sigara içerken %40.3’ü sigara içmemektedir.
Tablolarda, gesttaion değişkeninin yani bebeklerin doğma günlerinin bağımlı değişken gibi düşünüp parity ve smoke değişkenlerini yorumlayalım.
gestation ve parity
table(train$gestation, train$parity)
##
## No Yes
## Early 62 14
## Healthy 598 208
## Late 74 34
Erken doğan bebekler için 63’ünün annesinin ilk doğumunu yaptığı, 14’ünün ise ilk doğumunun olmadığını görmekteyiz.
Sağlıklı sürede doğan bebekler için 597’sinin annesinin ilk doğumunu yaptığı, 208’inin ise ilk doğumunun olmadığını görmekteyiz.
Geç doğan bebekler için 74’ünün annesinin ilk doğumunu yaptığı, 34’ünün ise ilk doğumunun olmadığını görmekteyiz.
gestation ve smoke
table(train$gestation, train$smoke)
##
## No Yes
## Early 49 27
## Healthy 474 332
## Late 68 40
Erken doğan bebekler için 50’sinin annesinin sigara içmediğini, 27’sinin ise sigara içtiğini görmekteyiz.
Sağlıklı sürede doğan bebekler için 473’ünün annesinin sigara içmediğini, 332’sinin ise sigara içtiğini görmekteyiz.
Geç doğan bebekler için 68’inin annesinin sigara içmediğini, 40’ının ise sigara içtiğini görmekteyiz.
gestation ve parity
dt <- table(train$gestation, train$parity)
prop.table(dt,1)
##
## No Yes
## Early 0.8157895 0.1842105
## Healthy 0.7419355 0.2580645
## Late 0.6851852 0.3148148
Erken doğan bebekler için %82’sinin annesinin ilk doğumunu yaptığı, %18’inin ise ilk doğumunun olmadığını görmekteyiz.
Sağlıklı sürede doğan bebekler için %74’ünün annesinin ilk doğumunu yaptığı, %26’sının ise ilk doğumunun olmadığını görmekteyiz.
Geç doğan bebekler için %68’inin annesinin ilk doğumunu yaptığı, %32’sinin ise ilk doğumunun olmadığını görmekteyiz.
gestation ve smoke
dt <- table(train$gestation, train$smoke)
prop.table(dt,1)
##
## No Yes
## Early 0.6447368 0.3552632
## Healthy 0.5880893 0.4119107
## Late 0.6296296 0.3703704
Erken doğan bebekler için %65’inin annesinin sigara içmediğini, %35’inin ise sigara içtiğini görmekteyiz.
Sağlıklı sürede doğan bebekler için %59’unun annesinin sigara içmediğini, %41’inin ise sigara içtiğini görmekteyiz.
Geç doğan bebekler için %63’ünün annesinin sigara içmediğini, %37’sinin ise sigara içtiğini görmekteyiz.
Öncelikle paketi aktif edelim
library(DescTools)
## Registered S3 method overwritten by 'DescTools':
## method from
## plot.bagplot aplpack
##
## Attaching package: 'DescTools'
## The following objects are masked from 'package:fmsb':
##
## CronbachAlpha, VIF
## The following object is masked from 'package:aplpack':
##
## plot.bagplot
## The following objects are masked from 'package:psych':
##
## AUC, ICC, SD
## The following objects are masked from 'package:caret':
##
## MAE, RMSE
## The following objects are masked from 'package:Hmisc':
##
## %nin%, Label, Mean, Quantile
gestation ve parity
dt <- table(train$gestation, train$parity)
Assocs(dt)[1:3,1]
## Contingency Coeff. Cramer V Kendall Tau-b
## 0.06323867 0.06336550 0.06143756
Contingency Coeff = 0.06459532 bulunmuştur. Bu değer oldukça düşüktür. İki değişken arasında zayıf bir ilişki olduğunu gösterir.
Cramer V = 0.06473051 bulunmuştur. Bu değer de oldukça düşüktür ve iki değişken arasında zayıf bir ilişki olduğunu gösterir.
Kendall Tau-b = 0.06258649 bulunmuştur. Bu değer oldukça düşük ve yaklaşık olarak sıfıra yakın olduğu için iki değişken arasında anlamlı bir ilişkinin olmadığını gösterir.
gestation ve smoke
dt <- table(train$gestation, train$smoke)
Assocs(dt)[1:3,1]
## Contingency Coeff. Cramer V Kendall Tau-b
## 0.0384232197 0.0384516141 -0.0001145167
Contingency Coeff = 0.040816238 bulunmuştur. Bu değer oldukça düşüktür. İki değişken arasında zayıf bir ilişki olduğunu gösterir.
Cramer V = 0.040850280 bulunmuştur. Bu değer de oldukça düşüktür ve iki değişken arasında zayıf bir ilişki olduğunu gösterir.
Kendall Tau-b = 0.001750116 bulunmuştur. Bu değer oldukça düşük ve yaklaşık olarak sıfıra yakın olduğu için iki değişken arasında anlamlı bir ilişkinin olmadığını gösterir.
gestation ve parity
library(gplots)
## Registered S3 method overwritten by 'gplots':
## method from
## reorder.factor DescTools
##
## Attaching package: 'gplots'
## The following object is masked from 'package:DescTools':
##
## reorder.factor
## The following object is masked from 'package:PerformanceAnalytics':
##
## textplot
## The following object is masked from 'package:stats':
##
## lowess
dt <- table(train$gestation, train$parity)
balloonplot(t(dt), main ="Önceden Doğum Yapma Etkeni ve Doğrum Durumu ", xlab ="", ylab="",
label = FALSE,show.margins = FALSE)
Önceden doğum yapma etkeninin en çok sağlıklı sürede gerçekleşen doğumlarda olduğunu görmekteyiz.
Direkt olarak odds oranına gestation ve parity için bakılmayacaktır. Çünkü 2x2’lik tablo için heesaplanamıyor.
smoke ve parity
dt <- table(train$smoke, train$parity)
balloonplot(t(dt), main ="Önceden Doğum Yapma Etkeni ve Sigara içme Durumu", xlab ="", ylab="",
label = FALSE,show.margins = FALSE)
Önceden doğum yapma durumunun en az etkisinin sigara içenler ile olduğunu görürüz.
dt
##
## No Yes
## No 433 158
## Yes 301 98
odds <- OddsRatio(dt, conf.level=0.95)
odds
## odds ratio lwr.ci upr.ci
## 0.8922579 0.6664452 1.1945830
odds oranı < 1 olduğundan ters yönde (negatif) birliktelik vardır.
Önceden doğum yapmayan annelerin, önceden doğum yapan annelere göre sigara içme oranı 0.9 kat daha fazladır.
Dönüşüm uygulaması için Tukey’s Ladder ile pratik yol kullanacağız. Ancak öncesinde, değişkenlerin dağılımlarını, grafikler ve temel istatistikler ile eğer gerekirse hangi dönüşümü uygulayabileceğimizi bulmak adına ufak bir inceleme yapalım.
library(funModeling)
plot_num(train)
boxplot(train$bwt, train$age, train$height, train$weight,
main="Boxplots", names=c("bwt", "age", "height", "weight"), col="orange")
bwt değişkeni
Genişliği 3.43035 bulunmuştu. Bu değer 20’den küçük olduğu için genişliğe göre dönüşüm gerekmez.
Çapıklık değeri -0.1238406 ve basıklık değeri 3.501518 olarak bulunmuştu. Sivri ve hafif sola çarpık dağılım söz konusudur. Histograma baktığımızda, normale oldukça yakın olduğunu görmekteyiz. Bu durumda dönüşüm gerekmeyebilir. Zaten son kararı Tukey’s Ladder ile vereceğiz.
Kutu grafiğine baktığımızda, uç değerlerin varlığını görmekteyiz. Bu durum dönüşüme işaret olabilir.
Genel hatlara bakıldığında, dönüşüm konusunda net bir ayrım henüz yapamadık.
age değişkeni
Genişliği 29 bulunmuştu. Bu değer 20’den büyük olduğu için genişliğe göre dönüşüm gerekir.
Çapıklık değeri 0.5546203 ve basıklık değeri 2.662981 olarak bulunmuştu. Basık ve sağa çarpık dağılım vardır. Histogramı da bunu destekler nitelikte sağa çarpıktır.
Kutu grafiğinde yalnızca 1 adet uç değer görünmektedir. Bu durum dönüşüme ihtiyaç gerektirmeyenbilir.
Genele bakıldığında, dönüşümün gerektiği izlenimini alırız.
height değişkeni
Genişliği 45.72 bulunmuştu. Bu değer 20’den büyük olduğu için genişliğe göre dönüşüm gerekir.
Çapıklık değeri -0.1304564 ve basıklık değeri 3.218946 olarak bulunmuştu. Sivri ve hafif sola çarpık dağılım söz konusudur. Bu sola çarpıklık histogramdan da görülmektedir.
Kutu grafiğinde yalnızca 2 adet uç değer görünmektedir. Bu durum dönüşüme ihtiyaç gerektirmeyebiir.
Genele bakıldığında, dönüşümün gerektiği izlenimini alırız.
weight değişkeni
Genişliği 73.35 bulunmuştu. Bu değer 20’den büyük olduğu için genişliğe göre dönüşüm gerekir.
Çapıklık değeri 1.219162 ve basıklık değeri 5.761421 olarak bulunmuştu. Sivri ve sağa çarpık dağılımı vardır. Bu sivrilik ve sağa çarpıklık, histogramda da görünmektedir.
Kutu grafiğine baktığımızda, uç değerlerin varlığını görmekteyiz. Bu durum dönüşüme işaret olabilir.
Genele bakıldığında, dönüşümün gerektiği izlenimini alırız.
Tukey’s Ladder ile dönüşüm gerekip gerekmediğine bakalım. Eğer gerekiyorsa, hangi dönüşümlerimn kullanılacağına karar verelim.
bwt değişkeni
library(rcompanion)
##
## Attaching package: 'rcompanion'
## The following object is masked from 'package:psych':
##
## phi
bwt_tukey <- transformTukey(train$bwt, plotit=FALSE)
##
## lambda W Shapiro.p.value
## 448 1.175 0.9964 0.02072
##
## if (lambda > 0){TRANS = x ^ lambda}
## if (lambda == 0){TRANS = log(x)}
## if (lambda < 0){TRANS = -1 * x ^ lambda}
bwt_tukey
## [1] 3.927507 4.546965 3.724112 4.882678 4.967156 4.714376 5.179284 5.051848
## [9] 5.221867 5.094274 3.805277 3.968378 4.009312 4.009312 5.221867 4.173664
## [17] 3.602859 4.009312 4.297567 4.672439 3.522359 5.307188 3.968378 3.968378
## [25] 4.297567 4.630558 4.173664 3.927507 3.683628 4.798417 4.297567 3.805277
## [33] 3.845956 5.179284 5.693635 3.805277 4.297567 5.264501 4.009312 3.482211
## [41] 5.179284 4.380466 4.380466 5.264501 2.426313 3.683628 4.380466 4.297567
## [49] 3.442132 4.546965 3.562575 3.282514 4.924890 3.522359 5.136753 4.630558
## [57] 5.736820 4.756369 4.214905 3.045254 4.505253 4.256206 4.214905 3.362182
## [65] 5.435553 4.588733 5.009475 3.968378 4.967156 4.588733 4.967156 4.672439
## [73] 4.422004 3.968378 4.546965 4.798417 3.968378 2.810717 4.840520 2.888584
## [81] 4.546965 4.214905 4.173664 4.050307 3.683628 4.173664 4.756369 5.693635
## [89] 4.463600 4.924890 3.522359 4.422004 3.045254 4.798417 3.203134 4.132484
## [97] 5.094274 4.672439 3.402122 4.672439 4.256206 4.091365 3.886700 3.163553
## [105] 3.764662 4.091365 4.546965 4.546965 4.798417 3.124045 4.297567 3.402122
## [113] 5.349925 4.214905 5.221867 3.602859 4.882678 3.482211 3.927507 4.463600
## [121] 4.463600 4.009312 4.505253 4.173664 4.338987 4.756369 3.602859 4.798417
## [129] 5.221867 4.798417 4.050307 3.927507 4.672439 4.463600 4.256206 4.967156
## [137] 4.214905 4.798417 3.442132 4.714376 4.882678 3.927507 3.242788 3.927507
## [145] 4.672439 4.924890 4.756369 3.683628 5.136753 4.882678 4.422004 3.562575
## [153] 4.630558 3.005971 4.132484 4.924890 3.442132 3.322313 4.380466 5.521382
## [161] 3.764662 5.478442 4.672439 3.442132 3.927507 4.505253 3.282514 5.478442
## [169] 2.810717 3.602859 3.005971 4.009312 3.683628 4.173664 4.798417 4.091365
## [177] 4.009312 3.805277 4.630558 5.051848 3.124045 5.650498 4.422004 4.297567
## [185] 4.588733 2.810717 6.478195 3.968378 3.845956 5.478442 3.845956 4.463600
## [193] 4.297567 5.094274 5.136753 3.362182 3.927507 4.630558 3.643210 4.546965
## [201] 4.422004 3.968378 4.050307 2.655949 4.380466 4.422004 3.805277 4.422004
## [209] 4.967156 5.136753 4.009312 3.482211 5.051848 4.756369 3.562575 4.173664
## [217] 5.564371 4.338987 5.179284 4.672439 4.173664 3.764662 4.672439 3.805277
## [225] 5.392714 4.924890 4.091365 4.009312 3.322313 4.882678 4.256206 4.714376
## [233] 3.045254 2.810717 3.643210 4.714376 2.617463 3.764662 3.845956 5.179284
## [241] 4.882678 3.805277 3.322313 3.724112 3.442132 2.274984 4.380466 3.124045
## [249] 3.442132 3.402122 4.091365 4.091365 5.435553 3.805277 5.136753 3.562575
## [257] 4.967156 3.886700 3.764662 4.672439 4.214905 4.050307 3.522359 5.009475
## [265] 4.338987 3.562575 4.672439 4.588733 4.756369 3.602859 3.124045 4.630558
## [273] 3.643210 4.214905 4.132484 5.051848 3.968378 4.214905 3.683628 2.274984
## [281] 2.927635 3.683628 4.297567 3.643210 4.840520 3.683628 4.588733 4.050307
## [289] 4.380466 5.264501 3.482211 4.588733 3.322313 4.840520 3.442132 3.242788
## [297] 3.562575 3.402122 5.650498 4.505253 4.463600 4.463600 4.505253 3.322313
## [305] 4.505253 4.588733 4.672439 4.714376 4.505253 3.362182 4.009312 5.264501
## [313] 4.882678 4.256206 4.256206 4.214905 4.132484 4.714376 3.482211 5.179284
## [321] 4.132484 3.482211 6.040464 5.009475 4.714376 2.888584 4.672439 4.630558
## [329] 4.338987 4.009312 4.050307 4.173664 4.422004 5.221867 5.051848 4.214905
## [337] 4.050307 5.307188 3.886700 4.009312 4.714376 5.307188 4.297567 4.546965
## [345] 4.173664 4.840520 4.050307 4.588733 4.050307 3.402122 4.132484 4.967156
## [353] 4.338987 3.927507 4.588733 4.297567 4.214905 3.968378 4.091365 5.136753
## [361] 5.221867 4.505253 2.810717 4.338987 3.886700 3.482211 3.764662 3.482211
## [369] 4.546965 3.683628 4.882678 3.442132 3.402122 4.091365 2.927635 3.203134
## [377] 4.173664 4.505253 3.683628 4.380466 4.463600 3.322313 3.242788 3.562575
## [385] 4.756369 3.124045 4.630558 4.422004 4.009312 4.630558 3.968378 3.602859
## [393] 3.442132 4.714376 3.886700 2.199873 3.968378 4.338987 3.968378 4.009312
## [401] 4.546965 4.173664 5.650498 4.505253 4.672439 4.588733 3.805277 4.091365
## [409] 4.967156 4.463600 4.380466 3.845956 3.522359 5.823337 5.307188 4.714376
## [417] 3.968378 2.274984 4.050307 3.724112 4.338987 4.798417 3.927507 4.256206
## [425] 4.422004 4.009312 3.442132 3.124045 3.764662 4.009312 4.630558 4.338987
## [433] 3.845956 3.282514 4.297567 4.588733 4.380466 3.683628 5.136753 4.588733
## [441] 6.522217 3.602859 3.522359 4.380466 3.602859 4.756369 5.953471 3.602859
## [449] 3.724112 4.756369 4.505253 4.546965 4.091365 4.338987 5.094274 3.045254
## [457] 4.050307 3.845956 4.132484 4.463600 3.322313 4.009312 3.522359 5.349925
## [465] 4.338987 4.422004 4.091365 3.362182 4.009312 4.050307 4.132484 6.346398
## [473] 3.562575 5.221867 3.362182 5.136753 2.810717 4.630558 4.091365 3.764662
## [481] 3.602859 4.840520 4.009312 4.338987 3.602859 3.805277 3.522359 4.091365
## [489] 4.214905 5.264501 3.562575 4.338987 4.380466 4.588733 3.045254 3.764662
## [497] 3.724112 2.579061 3.968378 4.546965 4.588733 3.282514 3.522359 6.610392
## [505] 5.179284 4.505253 3.683628 3.927507 3.643210 5.564371 5.478442 4.882678
## [513] 5.521382 4.380466 4.338987 4.173664 4.297567 3.886700 3.124045 3.764662
## [521] 4.882678 4.256206 5.478442 3.163553 4.214905 4.588733 4.422004 4.380466
## [529] 5.094274 3.242788 4.967156 4.505253 3.968378 3.522359 4.505253 5.094274
## [537] 3.927507 3.362182 3.282514 4.050307 4.463600 5.823337 4.173664 4.338987
## [545] 4.588733 3.402122 4.672439 5.307188 2.771903 4.009312 4.132484 3.045254
## [553] 3.886700 4.091365 3.764662 3.362182 4.672439 4.798417 4.546965 5.478442
## [561] 2.849611 4.009312 2.540745 4.050307 3.805277 3.927507 4.882678 3.968378
## [569] 4.256206 4.091365 6.171303 2.888584 4.214905 4.714376 3.005971 4.672439
## [577] 3.522359 5.221867 4.380466 4.882678 4.091365 4.256206 4.050307 3.805277
## [585] 2.849611 4.756369 4.756369 4.714376 4.924890 2.771903 4.882678 3.084612
## [593] 4.588733 6.215008 2.274984 4.380466 3.602859 4.422004 4.422004 4.422004
## [601] 6.522217 4.505253 4.009312 5.009475 4.505253 3.886700 5.179284 3.805277
## [609] 2.888584 4.714376 3.602859 4.588733 3.045254 5.349925 4.546965 4.924890
## [617] 3.562575 4.214905 3.886700 3.242788 4.798417 4.463600 3.886700 4.967156
## [625] 2.733170 3.886700 5.392714 4.173664 2.849611 3.805277 4.463600 4.422004
## [633] 4.882678 4.505253 2.771903 4.672439 4.338987 3.242788 3.805277 4.338987
## [641] 5.564371 4.505253 4.091365 4.422004 5.009475 3.968378 3.242788 4.380466
## [649] 3.322313 4.173664 3.683628 4.091365 4.091365 5.221867 4.882678 4.256206
## [657] 6.127643 4.422004 4.924890 3.402122 4.798417 3.724112 5.094274 4.630558
## [665] 5.009475 4.630558 3.927507 2.502514 1.940037 3.764662 5.264501 3.084612
## [673] 3.927507 4.463600 3.322313 3.805277 4.050307 4.546965 3.845956 4.924890
## [681] 4.798417 3.402122 5.910046 3.886700 4.798417 5.264501 4.050307 4.463600
## [689] 3.845956 4.463600 3.764662 4.173664 3.522359 4.380466 5.693635 4.297567
## [697] 3.927507 4.297567 4.463600 4.050307 3.482211 3.805277 4.756369 4.422004
## [705] 6.084030 4.756369 4.840520 4.380466 4.297567 3.402122 4.588733 4.546965
## [713] 4.050307 4.338987 2.888584 4.546965 4.214905 4.422004 5.521382 2.927635
## [721] 3.242788 4.588733 4.546965 2.810717 4.380466 3.886700 4.009312 4.297567
## [729] 4.050307 4.505253 3.005971 3.362182 5.221867 4.967156 1.793815 3.764662
## [737] 3.805277 4.588733 5.478442 4.546965 5.136753 4.009312 3.724112 3.724112
## [745] 5.009475 4.882678 4.672439 2.502514 4.380466 3.562575 3.482211 3.163553
## [753] 5.823337 3.886700 4.173664 3.282514 3.362182 4.009312 5.009475 5.221867
## [761] 3.362182 4.588733 4.173664 3.968378 3.643210 4.882678 4.256206 4.338987
## [769] 5.009475 4.422004 3.602859 5.307188 4.756369 5.349925 3.764662 4.297567
## [777] 4.840520 3.683628 4.091365 4.967156 4.214905 4.173664 4.132484 3.927507
## [785] 5.392714 5.051848 4.798417 4.214905 1.685295 3.522359 3.602859 4.546965
## [793] 5.009475 3.562575 5.866667 4.132484 3.362182 5.221867 4.091365 4.422004
## [801] 4.173664 3.805277 3.402122 4.505253 4.091365 4.297567 4.297567 4.132484
## [809] 4.924890 4.214905 5.179284 3.724112 4.672439 3.805277 3.602859 4.422004
## [817] 2.540745 3.968378 3.845956 3.522359 3.968378 3.163553 5.478442 5.221867
## [825] 5.221867 5.264501 3.602859 4.588733 3.968378 5.910046 2.050799 5.264501
## [833] 5.009475 4.338987 3.764662 3.805277 4.297567 4.009312 4.091365 3.724112
## [841] 4.672439 4.882678 4.422004 3.482211 3.482211 4.588733 5.693635 3.764662
## [849] 2.617463 4.422004 3.163553 2.350467 4.338987 3.482211 4.214905 3.724112
## [857] 3.522359 3.602859 4.463600 5.264501 5.009475 4.380466 4.463600 4.173664
## [865] 3.968378 4.132484 4.505253 4.091365 4.924890 4.756369 3.402122 3.683628
## [873] 4.009312 3.045254 3.886700 3.724112 4.630558 4.840520 4.338987 3.402122
## [881] 4.380466 6.522217 4.588733 4.173664 4.463600 4.546965 4.050307 3.402122
## [889] 3.242788 4.672439 3.805277 3.724112 4.588733 3.805277 4.132484 3.845956
## [897] 4.214905 4.256206 4.091365 5.823337 5.823337 4.756369 6.040464 4.546965
## [905] 4.505253 4.798417 3.482211 3.402122 4.214905 3.322313 4.630558 4.297567
## [913] 4.924890 3.968378 1.976856 3.362182 2.966765 4.091365 3.643210 5.736820
## [921] 2.312680 2.426313 3.282514 3.643210 4.091365 4.091365 3.886700 3.886700
## [929] 5.094274 4.672439 4.630558 4.714376 3.968378 5.910046 3.643210 3.886700
## [937] 5.009475 4.630558 2.694518 4.173664 4.338987 4.009312 4.380466 4.967156
## [945] 5.307188 4.546965 2.694518 3.402122 3.968378 3.282514 4.297567 5.564371
## [953] 4.050307 4.714376 2.771903 4.173664 3.562575 3.643210 5.009475 3.522359
## [961] 3.886700 3.242788 3.482211 4.214905 3.482211 3.927507 4.630558 3.282514
## [969] 3.968378 4.505253 5.094274 4.050307 4.967156 3.362182 4.132484 3.282514
## [977] 5.307188 2.655949 3.805277 4.840520 4.380466 4.009312 5.179284 3.522359
## [985] 4.505253 4.714376 3.927507 4.546965 4.422004 4.091365
lambda değeri 1.175 bulunmuştur. Bu değer 1’e oldukça yakın. Zaten bwt değişkeninde dönüşüm uygulamasında kararsız kalmışık. Lambda değerini de baz aldığımızda şimdilik bwt değişkenine dönüşüm uygulamayalım.
age değişkeni
age_tukey <- transformTukey(train$age, plotit=FALSE)
##
## lambda W Shapiro.p.value
## 386 -0.375 0.987 1.028e-07
##
## if (lambda > 0){TRANS = x ^ lambda}
## if (lambda == 0){TRANS = log(x)}
## if (lambda < 0){TRANS = -1 * x ^ lambda}
age_tukey
## [1] -0.2694991 -0.2866261 -0.3085688 -0.2990698 -0.2694991 -0.3085688
## [7] -0.2793055 -0.2905618 -0.2726269 -0.3085688 -0.2608474 -0.2793055
## [13] -0.2556119 -0.2694991 -0.2694991 -0.2440334 -0.3137556 -0.2905618
## [19] -0.2793055 -0.3085688 -0.2905618 -0.2947033 -0.3251725 -0.2866261
## [25] -0.2947033 -0.2793055 -0.3085688 -0.3036832 -0.3036832 -0.3085688
## [31] -0.2905618 -0.3085688 -0.2905618 -0.2905618 -0.2726269 -0.2990698
## [37] -0.2947033 -0.2947033 -0.2947033 -0.2866261 -0.2758922 -0.3137556
## [43] -0.2947033 -0.2694991 -0.2694991 -0.3036832 -0.3137556 -0.3085688
## [49] -0.3085688 -0.2866261 -0.2608474 -0.2581810 -0.2947033 -0.2758922
## [55] -0.2556119 -0.2905618 -0.2947033 -0.2990698 -0.3036832 -0.3036832
## [61] -0.3192771 -0.2531342 -0.2905618 -0.2905618 -0.2636176 -0.3085688
## [67] -0.2990698 -0.2694991 -0.2793055 -0.2828790 -0.2726269 -0.2581810
## [73] -0.3137556 -0.3036832 -0.2694991 -0.2866261 -0.2905618 -0.3085688
## [79] -0.3137556 -0.2866261 -0.2636176 -0.2905618 -0.2694991 -0.3036832
## [85] -0.2608474 -0.3036832 -0.2581810 -0.2694991 -0.3137556 -0.2828790
## [91] -0.2947033 -0.2866261 -0.3314877 -0.3192771 -0.3137556 -0.2828790
## [97] -0.2694991 -0.2990698 -0.2531342 -0.3036832 -0.2664989 -0.2758922
## [103] -0.3085688 -0.2793055 -0.2636176 -0.2990698 -0.3036832 -0.2990698
## [109] -0.3036832 -0.3192771 -0.2905618 -0.2531342 -0.2726269 -0.2990698
## [115] -0.2793055 -0.2726269 -0.3085688 -0.3036832 -0.3036832 -0.2556119
## [121] -0.2828790 -0.2828790 -0.2828790 -0.3251725 -0.3192771 -0.3036832
## [127] -0.2531342 -0.3137556 -0.3192771 -0.3137556 -0.3137556 -0.2947033
## [133] -0.3085688 -0.2828790 -0.2990698 -0.3036832 -0.2793055 -0.2793055
## [139] -0.2990698 -0.2990698 -0.3085688 -0.3085688 -0.3085688 -0.3192771
## [145] -0.2664989 -0.2990698 -0.3036832 -0.3251725 -0.2636176 -0.3137556
## [151] -0.2726269 -0.2947033 -0.2793055 -0.3137556 -0.3137556 -0.2664989
## [157] -0.3314877 -0.3251725 -0.3085688 -0.3192771 -0.3085688 -0.3137556
## [163] -0.2556119 -0.2828790 -0.3314877 -0.2990698 -0.3085688 -0.3192771
## [169] -0.2694991 -0.2664989 -0.2947033 -0.3137556 -0.2866261 -0.3251725
## [175] -0.2947033 -0.2636176 -0.2866261 -0.3085688 -0.3192771 -0.3085688
## [181] -0.2694991 -0.2461963 -0.3314877 -0.2694991 -0.3137556 -0.3036832
## [187] -0.2793055 -0.2990698 -0.2905618 -0.2990698 -0.3192771 -0.2726269
## [193] -0.2866261 -0.3036832 -0.3036832 -0.2556119 -0.3085688 -0.2947033
## [199] -0.2758922 -0.3137556 -0.3192771 -0.2793055 -0.2866261 -0.2793055
## [205] -0.2905618 -0.3137556 -0.2990698 -0.3085688 -0.2507422 -0.2531342
## [211] -0.3085688 -0.2556119 -0.2990698 -0.3137556 -0.3251725 -0.2461963
## [217] -0.2828790 -0.3251725 -0.3314877 -0.2507422 -0.2694991 -0.3085688
## [223] -0.3192771 -0.2866261 -0.2905618 -0.3251725 -0.2905618 -0.3137556
## [229] -0.2636176 -0.3251725 -0.3085688 -0.2990698 -0.2608474 -0.2947033
## [235] -0.2947033 -0.2828790 -0.2990698 -0.3036832 -0.2905618 -0.3192771
## [241] -0.2947033 -0.3314877 -0.2828790 -0.3036832 -0.3382773 -0.2726269
## [247] -0.2828790 -0.2664989 -0.2990698 -0.2758922 -0.3036832 -0.2828790
## [253] -0.2990698 -0.3192771 -0.3036832 -0.2694991 -0.2664989 -0.3192771
## [259] -0.2990698 -0.2866261 -0.2828790 -0.2828790 -0.3137556 -0.2726269
## [265] -0.2947033 -0.3085688 -0.2758922 -0.2905618 -0.2793055 -0.3137556
## [271] -0.2581810 -0.3137556 -0.2758922 -0.2694991 -0.3382773 -0.3314877
## [277] -0.3137556 -0.3137556 -0.2905618 -0.2726269 -0.2793055 -0.3314877
## [283] -0.3085688 -0.3314877 -0.2793055 -0.2947033 -0.2726269 -0.2947033
## [289] -0.2947033 -0.2531342 -0.2905618 -0.2793055 -0.3137556 -0.3036832
## [295] -0.3251725 -0.2947033 -0.3382773 -0.3036832 -0.2507422 -0.2758922
## [301] -0.2758922 -0.3085688 -0.2947033 -0.2990698 -0.3192771 -0.3137556
## [307] -0.3137556 -0.3314877 -0.2905618 -0.2664989 -0.2793055 -0.3036832
## [313] -0.2828790 -0.3251725 -0.3137556 -0.2990698 -0.2947033 -0.3036832
## [319] -0.3137556 -0.2531342 -0.2990698 -0.3137556 -0.2636176 -0.3251725
## [325] -0.3085688 -0.2905618 -0.2793055 -0.2947033 -0.2866261 -0.3382773
## [331] -0.2905618 -0.3251725 -0.3314877 -0.2694991 -0.2866261 -0.3456063
## [337] -0.3085688 -0.3085688 -0.3192771 -0.2793055 -0.3251725 -0.2531342
## [343] -0.2793055 -0.2726269 -0.3036832 -0.2905618 -0.2947033 -0.3036832
## [349] -0.2866261 -0.2905618 -0.2905618 -0.2556119 -0.3137556 -0.3192771
## [355] -0.3036832 -0.3036832 -0.2507422 -0.3251725 -0.2726269 -0.2694991
## [361] -0.2905618 -0.2726269 -0.2484312 -0.3456063 -0.3085688 -0.3314877
## [367] -0.2581810 -0.2990698 -0.3314877 -0.2990698 -0.3085688 -0.2905618
## [373] -0.2990698 -0.3192771 -0.3192771 -0.2636176 -0.2990698 -0.3036832
## [379] -0.3251725 -0.2947033 -0.2581810 -0.2905618 -0.3085688 -0.3036832
## [385] -0.2694991 -0.2990698 -0.3192771 -0.3137556 -0.3314877 -0.2947033
## [391] -0.2758922 -0.3192771 -0.2758922 -0.2947033 -0.2581810 -0.2758922
## [397] -0.2947033 -0.2828790 -0.3622145 -0.2758922 -0.2905618 -0.2866261
## [403] -0.2990698 -0.3192771 -0.2828790 -0.2866261 -0.2828790 -0.3251725
## [409] -0.2990698 -0.3036832 -0.3085688 -0.2664989 -0.2947033 -0.2866261
## [415] -0.2726269 -0.2947033 -0.3251725 -0.2507422 -0.3314877 -0.3314877
## [421] -0.2990698 -0.3036832 -0.2793055 -0.3251725 -0.3314877 -0.2990698
## [427] -0.2905618 -0.2793055 -0.2694991 -0.3085688 -0.3085688 -0.3192771
## [433] -0.3251725 -0.3036832 -0.2990698 -0.2947033 -0.2947033 -0.3251725
## [439] -0.3137556 -0.2828790 -0.2581810 -0.2793055 -0.2947033 -0.2905618
## [445] -0.2440334 -0.2608474 -0.3137556 -0.3085688 -0.2484312 -0.2990698
## [451] -0.2905618 -0.2484312 -0.2507422 -0.3085688 -0.3456063 -0.2947033
## [457] -0.2828790 -0.2608474 -0.3036832 -0.3137556 -0.2758922 -0.3192771
## [463] -0.3137556 -0.2947033 -0.3314877 -0.3137556 -0.2793055 -0.2828790
## [469] -0.2758922 -0.2608474 -0.2636176 -0.3192771 -0.2990698 -0.3456063
## [475] -0.2947033 -0.2581810 -0.3314877 -0.3036832 -0.3137556 -0.3036832
## [481] -0.3085688 -0.2905618 -0.3085688 -0.3085688 -0.2947033 -0.2990698
## [487] -0.2866261 -0.2990698 -0.3085688 -0.3036832 -0.3251725 -0.3382773
## [493] -0.2905618 -0.2947033 -0.2694991 -0.2726269 -0.3137556 -0.2608474
## [499] -0.2905618 -0.2664989 -0.3036832 -0.2947033 -0.3192771 -0.3314877
## [505] -0.2419386 -0.3192771 -0.2866261 -0.2758922 -0.3192771 -0.3036832
## [511] -0.2828790 -0.2636176 -0.2581810 -0.2636176 -0.3382773 -0.2581810
## [517] -0.2507422 -0.2664989 -0.2990698 -0.2905618 -0.3251725 -0.2758922
## [523] -0.2947033 -0.2947033 -0.2828790 -0.3314877 -0.2905618 -0.3192771
## [529] -0.2905618 -0.2694991 -0.2793055 -0.2866261 -0.2947033 -0.2758922
## [535] -0.3251725 -0.2828790 -0.3085688 -0.2758922 -0.2694991 -0.3251725
## [541] -0.2947033 -0.2866261 -0.2866261 -0.2905618 -0.3036832 -0.2947033
## [547] -0.2866261 -0.2905618 -0.2828790 -0.2866261 -0.2866261 -0.3314877
## [553] -0.2531342 -0.2664989 -0.2828790 -0.3137556 -0.2905618 -0.2636176
## [559] -0.2828790 -0.2556119 -0.2531342 -0.2947033 -0.3085688 -0.2990698
## [565] -0.2947033 -0.2556119 -0.3085688 -0.3085688 -0.2664989 -0.2866261
## [571] -0.2947033 -0.2905618 -0.3085688 -0.2866261 -0.2726269 -0.2793055
## [577] -0.3137556 -0.2694991 -0.3251725 -0.2905618 -0.3137556 -0.3085688
## [583] -0.2664989 -0.2531342 -0.3251725 -0.3251725 -0.2694991 -0.3251725
## [589] -0.2905618 -0.2664989 -0.2793055 -0.2664989 -0.2694991 -0.3314877
## [595] -0.3314877 -0.3137556 -0.2905618 -0.3192771 -0.3192771 -0.3137556
## [601] -0.2990698 -0.2636176 -0.3137556 -0.2636176 -0.2947033 -0.2947033
## [607] -0.2793055 -0.3192771 -0.2758922 -0.2664989 -0.2726269 -0.3036832
## [613] -0.2905618 -0.2793055 -0.2793055 -0.3314877 -0.3036832 -0.2726269
## [619] -0.3085688 -0.2905618 -0.2636176 -0.3036832 -0.2828790 -0.2905618
## [625] -0.2828790 -0.3251725 -0.2556119 -0.2664989 -0.2990698 -0.2556119
## [631] -0.3085688 -0.2793055 -0.2905618 -0.2828790 -0.2990698 -0.3137556
## [637] -0.3192771 -0.2793055 -0.2947033 -0.2828790 -0.3314877 -0.2866261
## [643] -0.3192771 -0.2828790 -0.2828790 -0.2758922 -0.2664989 -0.2828790
## [649] -0.3251725 -0.2866261 -0.2581810 -0.2947033 -0.3036832 -0.3085688
## [655] -0.2793055 -0.2866261 -0.2828790 -0.2793055 -0.2828790 -0.2866261
## [661] -0.2866261 -0.2531342 -0.2556119 -0.3314877 -0.3251725 -0.2726269
## [667] -0.2947033 -0.3085688 -0.3036832 -0.2581810 -0.2905618 -0.3314877
## [673] -0.2608474 -0.2866261 -0.3137556 -0.2726269 -0.3251725 -0.3085688
## [679] -0.3382773 -0.2664989 -0.2866261 -0.2828790 -0.2726269 -0.3137556
## [685] -0.2905618 -0.2636176 -0.2726269 -0.2947033 -0.2828790 -0.2694991
## [691] -0.2531342 -0.3137556 -0.3192771 -0.3456063 -0.2758922 -0.3192771
## [697] -0.2947033 -0.2947033 -0.2905618 -0.2484312 -0.3192771 -0.2905618
## [703] -0.2793055 -0.2828790 -0.2726269 -0.2608474 -0.2990698 -0.3314877
## [709] -0.3137556 -0.2793055 -0.3314877 -0.3382773 -0.3137556 -0.2793055
## [715] -0.2866261 -0.2905618 -0.2866261 -0.2636176 -0.3137556 -0.3251725
## [721] -0.3382773 -0.2758922 -0.2947033 -0.3036832 -0.2866261 -0.2866261
## [727] -0.2866261 -0.3036832 -0.2947033 -0.3251725 -0.3085688 -0.2905618
## [733] -0.2947033 -0.2793055 -0.2664989 -0.3036832 -0.3314877 -0.2905618
## [739] -0.2507422 -0.2905618 -0.2758922 -0.2758922 -0.2866261 -0.2636176
## [745] -0.2905618 -0.3085688 -0.2947033 -0.2556119 -0.2694991 -0.2947033
## [751] -0.3036832 -0.2793055 -0.2581810 -0.3192771 -0.2947033 -0.2828790
## [757] -0.3192771 -0.3085688 -0.2581810 -0.2905618 -0.3137556 -0.2440334
## [763] -0.3251725 -0.2636176 -0.2866261 -0.3036832 -0.3137556 -0.3137556
## [769] -0.2694991 -0.2608474 -0.3251725 -0.3137556 -0.3192771 -0.3314877
## [775] -0.3085688 -0.3085688 -0.2440334 -0.3314877 -0.2726269 -0.2793055
## [781] -0.2866261 -0.2636176 -0.3314877 -0.3192771 -0.3192771 -0.3137556
## [787] -0.2694991 -0.2758922 -0.2636176 -0.3314877 -0.2905618 -0.2866261
## [793] -0.2793055 -0.2905618 -0.2905618 -0.2828790 -0.2990698 -0.3251725
## [799] -0.3036832 -0.2581810 -0.2581810 -0.2905618 -0.3192771 -0.2581810
## [805] -0.3137556 -0.2581810 -0.3085688 -0.2608474 -0.3085688 -0.2726269
## [811] -0.2905618 -0.2828790 -0.3314877 -0.2608474 -0.3251725 -0.3085688
## [817] -0.3036832 -0.2608474 -0.2828790 -0.2507422 -0.2947033 -0.2608474
## [823] -0.2608474 -0.2793055 -0.2866261 -0.2990698 -0.2758922 -0.3192771
## [829] -0.3036832 -0.2866261 -0.2758922 -0.2866261 -0.3192771 -0.2905618
## [835] -0.3085688 -0.2664989 -0.3036832 -0.2664989 -0.2947033 -0.3314877
## [841] -0.2608474 -0.3036832 -0.2726269 -0.2828790 -0.3382773 -0.2758922
## [847] -0.2947033 -0.2694991 -0.2758922 -0.2793055 -0.3036832 -0.2828790
## [853] -0.3314877 -0.2531342 -0.3036832 -0.3192771 -0.2726269 -0.2484312
## [859] -0.2990698 -0.3137556 -0.2664989 -0.2947033 -0.3192771 -0.2694991
## [865] -0.3314877 -0.3085688 -0.2608474 -0.3137556 -0.2484312 -0.2828790
## [871] -0.2866261 -0.2947033 -0.3251725 -0.2947033 -0.2905618 -0.2947033
## [877] -0.2758922 -0.2990698 -0.3036832 -0.3036832 -0.3085688 -0.2531342
## [883] -0.2947033 -0.2905618 -0.2636176 -0.2581810 -0.3314877 -0.3382773
## [889] -0.2581810 -0.3251725 -0.2636176 -0.2866261 -0.3036832 -0.2758922
## [895] -0.3192771 -0.3036832 -0.2793055 -0.2828790 -0.3085688 -0.2636176
## [901] -0.2793055 -0.3137556 -0.2581810 -0.3314877 -0.2461963 -0.2507422
## [907] -0.2828790 -0.3036832 -0.2828790 -0.3382773 -0.3314877 -0.2758922
## [913] -0.2990698 -0.3251725 -0.3036832 -0.2726269 -0.2947033 -0.3137556
## [919] -0.2828790 -0.2905618 -0.2990698 -0.2581810 -0.2636176 -0.2484312
## [925] -0.2866261 -0.2990698 -0.3085688 -0.2828790 -0.2866261 -0.3314877
## [931] -0.3314877 -0.2947033 -0.3085688 -0.2664989 -0.3036832 -0.2990698
## [937] -0.2581810 -0.2726269 -0.3192771 -0.3192771 -0.2947033 -0.2905618
## [943] -0.3192771 -0.2990698 -0.3085688 -0.3456063 -0.2758922 -0.3036832
## [949] -0.2726269 -0.3251725 -0.3251725 -0.2531342 -0.3192771 -0.2608474
## [955] -0.2581810 -0.3382773 -0.3036832 -0.3036832 -0.3036832 -0.2608474
## [961] -0.3036832 -0.2694991 -0.3314877 -0.2664989 -0.3314877 -0.3137556
## [967] -0.2726269 -0.2990698 -0.2828790 -0.3456063 -0.2828790 -0.2694991
## [973] -0.2866261 -0.2531342 -0.3192771 -0.3036832 -0.2866261 -0.3314877
## [979] -0.2866261 -0.3314877 -0.3192771 -0.3085688 -0.2866261 -0.2793055
## [985] -0.2905618 -0.2905618 -0.2905618 -0.3036832 -0.3192771 -0.2556119
lambda değeri -0.4 bulunmuştur. Bu değere göre log veya kök dönüşümü uygun olabilir. Hatta kök dönüşümüne biraz daha yakındır. Ancak lambda değeri negatif olduğu için ters karekök dönüşümü ve ters logaritmik dönüşüm uygulanacaktır.
height değişkeni
height_tukey <- transformTukey(train$height, plotit=FALSE)
##
## lambda W Shapiro.p.value
## 483 2.05 0.9849 1.318e-08
##
## if (lambda > 0){TRANS = x ^ lambda}
## if (lambda == 0){TRANS = log(x)}
## if (lambda < 0){TRANS = -1 * x ^ lambda}
height_tukey
## [1] 34086.16 34086.16 37442.30 31938.32 31938.32 35186.94 36305.65 38596.90
## [9] 34086.16 33003.29 30891.24 33003.29 33003.29 29862.02 38596.90 36305.65
## [17] 25923.56 37442.30 38596.90 35186.94 35186.94 27857.14 35186.94 36305.65
## [25] 30891.24 36305.65 29862.02 35186.94 33003.29 33003.29 35186.94 33003.29
## [33] 30891.24 33003.29 36305.65 29862.02 36305.65 33003.29 31938.32 30891.24
## [41] 34086.16 29862.02 40960.01 35186.94 30891.24 30891.24 37442.30 35186.94
## [49] 33003.29 33003.29 35186.94 33003.29 39769.47 33003.29 33003.29 36305.65
## [57] 33003.29 36305.65 31938.32 29862.02 31938.32 33003.29 33003.29 31938.32
## [65] 35186.94 34086.16 38596.90 37442.30 36305.65 42168.56 35186.94 33003.29
## [73] 40960.01 37442.30 28850.66 31938.32 29862.02 30891.24 34086.16 30891.24
## [81] 31938.32 29862.02 34086.16 30891.24 35186.94 30891.24 36305.65 36305.65
## [89] 35186.94 35186.94 35186.94 35186.94 37442.30 35186.94 36305.65 34086.16
## [97] 36305.65 37442.30 35186.94 30891.24 39769.47 39769.47 35186.94 31938.32
## [105] 36305.65 31938.32 29862.02 36305.65 39769.47 35186.94 35186.94 31938.32
## [113] 35186.94 35186.94 33003.29 30891.24 36305.65 33003.29 38596.90 36305.65
## [121] 38596.90 30891.24 37442.30 36305.65 34086.16 29862.02 30891.24 29862.02
## [129] 37442.30 33003.29 35186.94 37442.30 35186.94 28850.66 38596.90 35186.94
## [137] 36305.65 36305.65 35186.94 34086.16 31938.32 35186.94 34086.16 31938.32
## [145] 34086.16 33003.29 30891.24 27857.14 36305.65 33003.29 30891.24 35186.94
## [153] 33003.29 33003.29 36305.65 30891.24 33003.29 33003.29 33003.29 35186.94
## [161] 30891.24 30891.24 35186.94 33003.29 31938.32 31938.32 30891.24 35186.94
## [169] 37442.30 30891.24 37442.30 35186.94 31938.32 34086.16 38596.90 35186.94
## [177] 36305.65 33003.29 31938.32 33003.29 36305.65 35186.94 34086.16 33003.29
## [185] 33003.29 38596.90 33003.29 35186.94 33003.29 37442.30 31938.32 36305.65
## [193] 35186.94 38596.90 33003.29 28850.66 33003.29 34086.16 35186.94 34086.16
## [201] 34086.16 36305.65 36305.65 34086.16 31938.32 35186.94 36305.65 33003.29
## [209] 34086.16 36305.65 29862.02 37442.30 30891.24 33003.29 31938.32 37442.30
## [217] 35186.94 35186.94 36305.65 35186.94 31938.32 33003.29 36305.65 34086.16
## [225] 42168.56 35186.94 33003.29 37442.30 34086.16 38596.90 42168.56 33003.29
## [233] 29862.02 29862.02 30891.24 34086.16 31938.32 34086.16 30891.24 35186.94
## [241] 36305.65 34086.16 36305.65 35186.94 31938.32 29862.02 38596.90 36305.65
## [249] 31938.32 31938.32 37442.30 35186.94 37442.30 36305.65 36305.65 34086.16
## [257] 36305.65 33003.29 31938.32 37442.30 34086.16 33003.29 34086.16 34086.16
## [265] 31938.32 34086.16 37442.30 38596.90 35186.94 37442.30 35186.94 36305.65
## [273] 35186.94 33003.29 33003.29 37442.30 34086.16 31938.32 36305.65 34086.16
## [281] 36305.65 31938.32 34086.16 36305.65 36305.65 33003.29 31938.32 34086.16
## [289] 31938.32 37442.30 37442.30 35186.94 30891.24 37442.30 31938.32 35186.94
## [297] 29862.02 37442.30 36305.65 37442.30 31938.32 36305.65 37442.30 35186.94
## [305] 36305.65 38596.90 34086.16 36305.65 31938.32 28850.66 34086.16 37442.30
## [313] 34086.16 33003.29 36305.65 31938.32 29862.02 33003.29 35186.94 35186.94
## [321] 31938.32 34086.16 39769.47 34086.16 30891.24 33003.29 37442.30 37442.30
## [329] 36305.65 33003.29 34086.16 37442.30 37442.30 36305.65 33003.29 34086.16
## [337] 33003.29 30891.24 31938.32 31938.32 34086.16 23156.59 38596.90 36305.65
## [345] 33003.29 36305.65 35186.94 36305.65 31938.32 34086.16 35186.94 37442.30
## [353] 35186.94 30891.24 35186.94 37442.30 33003.29 35186.94 36305.65 33003.29
## [361] 31938.32 34086.16 37442.30 34086.16 30891.24 35186.94 35186.94 29862.02
## [369] 36305.65 37442.30 34086.16 30891.24 34086.16 40960.01 29862.02 35186.94
## [377] 30891.24 36305.65 35186.94 36305.65 36305.65 33003.29 34086.16 33003.29
## [385] 33003.29 33003.29 30891.24 33003.29 35186.94 33003.29 34086.16 34086.16
## [393] 29862.02 37442.30 34086.16 28850.66 33003.29 33003.29 34086.16 31938.32
## [401] 37442.30 34086.16 35186.94 33003.29 34086.16 28850.66 31938.32 35186.94
## [409] 34086.16 36305.65 36305.65 31938.32 35186.94 31938.32 29862.02 36305.65
## [417] 36305.65 39769.47 34086.16 29862.02 34086.16 31938.32 29862.02 31938.32
## [425] 37442.30 36305.65 28850.66 35186.94 36305.65 29862.02 35186.94 30891.24
## [433] 34086.16 34086.16 35186.94 36305.65 28850.66 29862.02 31938.32 36305.65
## [441] 37442.30 35186.94 33003.29 33003.29 35186.94 35186.94 40960.01 34086.16
## [449] 36305.65 30891.24 37442.30 35186.94 38596.90 36305.65 34086.16 31938.32
## [457] 35186.94 37442.30 35186.94 35186.94 31938.32 29862.02 28850.66 35186.94
## [465] 35186.94 35186.94 37442.30 42168.56 36305.65 33003.29 38596.90 34086.16
## [473] 30891.24 39769.47 36305.65 38596.90 33003.29 36305.65 31938.32 34086.16
## [481] 34086.16 38596.90 37442.30 35186.94 30891.24 33003.29 31938.32 34086.16
## [489] 39769.47 31938.32 31938.32 31938.32 31938.32 34086.16 33003.29 30891.24
## [497] 27857.14 30891.24 31938.32 30891.24 35186.94 35186.94 31938.32 38596.90
## [505] 35186.94 38596.90 28850.66 31938.32 31938.32 30891.24 35186.94 34086.16
## [513] 34086.16 36305.65 34086.16 31938.32 34086.16 37442.30 34086.16 30891.24
## [521] 33003.29 38596.90 34086.16 34086.16 34086.16 35186.94 35186.94 33003.29
## [529] 33003.29 37442.30 36305.65 37442.30 34086.16 34086.16 35186.94 31938.32
## [537] 33003.29 26881.44 30891.24 38596.90 36305.65 36305.65 36305.65 31938.32
## [545] 29862.02 29862.02 34086.16 34086.16 29862.02 34086.16 40960.01 30891.24
## [553] 29862.02 36305.65 35186.94 31938.32 31938.32 29862.02 35186.94 37442.30
## [561] 35186.94 33003.29 33003.29 38596.90 36305.65 34086.16 36305.65 33003.29
## [569] 30891.24 33003.29 38596.90 31938.32 36305.65 31938.32 33003.29 27857.14
## [577] 35186.94 42168.56 34086.16 34086.16 34086.16 31938.32 38596.90 37442.30
## [585] 34086.16 35186.94 33003.29 36305.65 34086.16 33003.29 39769.47 31938.32
## [593] 39769.47 33003.29 34086.16 35186.94 31938.32 36305.65 31938.32 28850.66
## [601] 30891.24 36305.65 36305.65 33003.29 31938.32 29862.02 34086.16 36305.65
## [609] 31938.32 34086.16 33003.29 38596.90 31938.32 38596.90 34086.16 34086.16
## [617] 29862.02 33003.29 34086.16 33003.29 31938.32 34086.16 31938.32 35186.94
## [625] 33003.29 31938.32 38596.90 33003.29 34086.16 33003.29 30891.24 29862.02
## [633] 33003.29 34086.16 34086.16 36305.65 37442.30 38596.90 31938.32 38596.90
## [641] 37442.30 35186.94 34086.16 36305.65 38596.90 36305.65 31938.32 33003.29
## [649] 35186.94 35186.94 27857.14 30891.24 34086.16 37442.30 33003.29 39769.47
## [657] 36305.65 35186.94 35186.94 30891.24 31938.32 35186.94 36305.65 36305.65
## [665] 37442.30 35186.94 28850.66 33003.29 30891.24 33003.29 35186.94 33003.29
## [673] 33003.29 34086.16 37442.30 30891.24 35186.94 31938.32 30891.24 29862.02
## [681] 38596.90 34086.16 37442.30 31938.32 37442.30 34086.16 35186.94 34086.16
## [689] 35186.94 31938.32 34086.16 33003.29 36305.65 31938.32 36305.65 36305.65
## [697] 36305.65 36305.65 31938.32 34086.16 35186.94 34086.16 34086.16 35186.94
## [705] 36305.65 30891.24 34086.16 35186.94 31938.32 34086.16 30891.24 37442.30
## [713] 28850.66 33003.29 33003.29 33003.29 33003.29 38596.90 36305.65 36305.65
## [721] 29862.02 37442.30 35186.94 38596.90 30891.24 31938.32 30891.24 35186.94
## [729] 36305.65 34086.16 30891.24 28850.66 36305.65 35186.94 34086.16 33003.29
## [737] 31938.32 33003.29 37442.30 36305.65 36305.65 34086.16 36305.65 31938.32
## [745] 33003.29 31938.32 34086.16 37442.30 37442.30 31938.32 30891.24 31938.32
## [753] 40960.01 38596.90 34086.16 38596.90 34086.16 37442.30 30891.24 27857.14
## [761] 33003.29 37442.30 34086.16 29862.02 37442.30 35186.94 39769.47 30891.24
## [769] 35186.94 28850.66 34086.16 36305.65 34086.16 37442.30 33003.29 34086.16
## [777] 35186.94 29862.02 36305.65 36305.65 34086.16 35186.94 31938.32 35186.94
## [785] 33003.29 39769.47 37442.30 30891.24 35186.94 33003.29 35186.94 33003.29
## [793] 35186.94 30891.24 34086.16 31938.32 39769.47 33003.29 36305.65 33003.29
## [801] 31938.32 29862.02 35186.94 34086.16 31938.32 38596.90 34086.16 36305.65
## [809] 36305.65 33003.29 38596.90 37442.30 30891.24 30891.24 31938.32 33003.29
## [817] 36305.65 29862.02 35186.94 28850.66 31938.32 30891.24 31938.32 40960.01
## [825] 37442.30 33003.29 36305.65 35186.94 33003.29 34086.16 37442.30 34086.16
## [833] 39769.47 33003.29 35186.94 34086.16 35186.94 35186.94 31938.32 34086.16
## [841] 38596.90 33003.29 33003.29 35186.94 35186.94 33003.29 36305.65 39769.47
## [849] 30891.24 34086.16 33003.29 35186.94 36305.65 29862.02 30891.24 35186.94
## [857] 31938.32 30891.24 38596.90 37442.30 36305.65 35186.94 29862.02 37442.30
## [865] 33003.29 34086.16 35186.94 37442.30 35186.94 35186.94 29862.02 35186.94
## [873] 31938.32 30891.24 34086.16 37442.30 31938.32 34086.16 36305.65 30891.24
## [881] 34086.16 35186.94 37442.30 28850.66 30891.24 30891.24 34086.16 38596.90
## [889] 36305.65 38596.90 31938.32 33003.29 35186.94 40960.01 33003.29 29862.02
## [897] 29862.02 33003.29 27857.14 34086.16 36305.65 35186.94 30891.24 36305.65
## [905] 31938.32 33003.29 33003.29 30891.24 28850.66 35186.94 31938.32 31938.32
## [913] 34086.16 30891.24 27857.14 33003.29 34086.16 35186.94 33003.29 35186.94
## [921] 36305.65 30891.24 30891.24 34086.16 30891.24 36305.65 36305.65 30891.24
## [929] 30891.24 33003.29 35186.94 37442.30 37442.30 34086.16 33003.29 28850.66
## [937] 36305.65 33003.29 35186.94 34086.16 33003.29 28850.66 37442.30 35186.94
## [945] 29862.02 34086.16 34086.16 33003.29 30891.24 35186.94 35186.94 31938.32
## [953] 31938.32 33003.29 36305.65 30891.24 37442.30 31938.32 35186.94 35186.94
## [961] 37442.30 34086.16 37442.30 33003.29 34086.16 40960.01 27857.14 33003.29
## [969] 34086.16 30891.24 24061.15 36305.65 38596.90 39769.47 33003.29 31938.32
## [977] 36305.65 33003.29 36305.65 29862.02 34086.16 34086.16 35186.94 29862.02
## [985] 35186.94 35186.94 29862.02 37442.30 35186.94 35186.94
lambda değeri 1.825 bulunmuştur. Üstel dönüşüm için uygun görünüyor. 1.825 değeri, 2’ye daha yakın olduğu için kare dönüşümü denenecektir.
weight değişkeni
weight_tukey <- transformTukey(train$weight, plotit=FALSE)
##
## lambda W Shapiro.p.value
## 353 -1.2 0.9973 0.09188
##
## if (lambda > 0){TRANS = x ^ lambda}
## if (lambda == 0){TRANS = log(x)}
## if (lambda < 0){TRANS = -1 * x ^ lambda}
weight_tukey
## [1] -0.007240098 -0.008776221 -0.007940594 -0.011323103 -0.005195663
## [6] -0.006930927 -0.007176262 -0.008339259 -0.008017500 -0.007717791
## [11] -0.010504678 -0.006181874 -0.007575529 -0.007940594 -0.005490429
## [16] -0.006813950 -0.011323103 -0.005302728 -0.005058938 -0.008175479
## [21] -0.009059065 -0.009677829 -0.005302728 -0.007438002 -0.009788538
## [26] -0.008095783 -0.009788538 -0.008339259 -0.008776221 -0.011470955
## [31] -0.010255559 -0.005230908 -0.008423423 -0.009257075 -0.006380217
## [36] -0.011777523 -0.006536785 -0.008423423 -0.007575529 -0.009257075
## [41] -0.007865029 -0.007575529 -0.006645128 -0.006930927 -0.009257075
## [46] -0.010899824 -0.008509158 -0.007940594 -0.007575529 -0.007940594
## [51] -0.008776221 -0.006380217 -0.007113450 -0.005490429 -0.005490429
## [56] -0.007575529 -0.008509158 -0.007940594 -0.008339259 -0.006431636
## [61] -0.009257075 -0.007575529 -0.007865029 -0.010017061 -0.008685511
## [66] -0.009901591 -0.007240098 -0.006483820 -0.006645128 -0.007304983
## [71] -0.008596506 -0.006756810 -0.004628473 -0.008962947 -0.008596506
## [76] -0.009059065 -0.009901591 -0.010017061 -0.010378748 -0.010378748
## [81] -0.009257075 -0.008256625 -0.008339259 -0.007051639 -0.008596506
## [86] -0.009463166 -0.006930927 -0.006756810 -0.006380217 -0.006181874
## [91] -0.008095783 -0.007940594 -0.007176262 -0.008175479 -0.006645128
## [96] -0.008868684 -0.009359081 -0.004142083 -0.005490429 -0.010017061
## [101] -0.006134045 -0.006380217 -0.009257075 -0.008339259 -0.006181874
## [106] -0.010017061 -0.010378748 -0.006536785 -0.007240098 -0.009901591
## [111] -0.005690681 -0.009569394 -0.008095783 -0.009257075 -0.007790772
## [116] -0.008776221 -0.006134045 -0.007940594 -0.006930927 -0.003456344
## [121] -0.006483820 -0.007717791 -0.006645128 -0.007438002 -0.006279610
## [126] -0.009901591 -0.007240098 -0.008256625 -0.009157088 -0.007940594
## [131] -0.005904743 -0.009788538 -0.008095783 -0.009257075 -0.008509158
## [136] -0.008776221 -0.007506188 -0.005490429 -0.008095783 -0.008339259
## [141] -0.005302728 -0.004744424 -0.008685511 -0.006380217 -0.007575529
## [146] -0.008596506 -0.011323103 -0.010765121 -0.007176262 -0.009257075
## [151] -0.009157088 -0.006134045 -0.006380217 -0.005568957 -0.006536785
## [156] -0.009257075 -0.006930927 -0.010765121 -0.009059065 -0.005690681
## [161] -0.009788538 -0.009257075 -0.007940594 -0.006380217 -0.007051639
## [166] -0.006380217 -0.010504678 -0.007940594 -0.007575529 -0.007575529
## [171] -0.007940594 -0.007575529 -0.007240098 -0.005126465 -0.007176262
## [176] -0.006813950 -0.007717791 -0.008339259 -0.009677829 -0.009677829
## [181] -0.008596506 -0.008685511 -0.007790772 -0.007240098 -0.005904743
## [186] -0.006134045 -0.009257075 -0.006930927 -0.009788538 -0.008596506
## [191] -0.007940594 -0.007717791 -0.008017500 -0.005529437 -0.007940594
## [196] -0.009257075 -0.009788538 -0.004960654 -0.006813950 -0.008509158
## [201] -0.006990806 -0.005904743 -0.007240098 -0.006483820 -0.009788538
## [206] -0.008175479 -0.006930927 -0.009901591 -0.007940594 -0.007438002
## [211] -0.010135024 -0.006930927 -0.010017061 -0.008423423 -0.008776221
## [216] -0.006086890 -0.006380217 -0.008339259 -0.007240098 -0.005904743
## [221] -0.008509158 -0.010017061 -0.007865029 -0.007240098 -0.004834937
## [226] -0.006040396 -0.009463166 -0.007240098 -0.008175479 -0.006483820
## [231] -0.006279610 -0.006930927 -0.010378748 -0.009788538 -0.009257075
## [236] -0.008175479 -0.007940594 -0.007940594 -0.010135024 -0.007940594
## [241] -0.007240098 -0.007575529 -0.007575529 -0.009059065 -0.006645128
## [246] -0.008596506 -0.005266593 -0.007240098 -0.009059065 -0.010378748
## [251] -0.007240098 -0.008339259 -0.007240098 -0.007646053 -0.007176262
## [256] -0.006645128 -0.008339259 -0.008339259 -0.009677829 -0.007240098
## [261] -0.007575529 -0.007438002 -0.009257075 -0.007790772 -0.007575529
## [266] -0.009569394 -0.006930927 -0.007575529 -0.009059065 -0.007575529
## [271] -0.007575529 -0.008596506 -0.009257075 -0.008962947 -0.007717791
## [276] -0.007438002 -0.009901591 -0.008776221 -0.007240098 -0.009257075
## [281] -0.007575529 -0.011178707 -0.006645128 -0.006536785 -0.007575529
## [286] -0.009059065 -0.005490429 -0.007940594 -0.008175479 -0.006756810
## [291] -0.007240098 -0.007575529 -0.008256625 -0.007717791 -0.009788538
## [296] -0.007940594 -0.009359081 -0.010378748 -0.006645128 -0.007113450
## [301] -0.006380217 -0.008776221 -0.006134045 -0.009059065 -0.007575529
## [306] -0.006645128 -0.008017500 -0.006645128 -0.008509158 -0.010378748
## [311] -0.006930927 -0.007940594 -0.008776221 -0.009788538 -0.007370942
## [316] -0.009788538 -0.009901591 -0.008596506 -0.007240098 -0.007646053
## [321] -0.008339259 -0.006930927 -0.006990806 -0.006756810 -0.007113450
## [326] -0.009901591 -0.007438002 -0.006536785 -0.009569394 -0.009257075
## [331] -0.007575529 -0.007575529 -0.007240098 -0.006134045 -0.004260709
## [336] -0.006813950 -0.007051639 -0.006645128 -0.010135024 -0.008776221
## [341] -0.006380217 -0.009257075 -0.006930927 -0.007575529 -0.008339259
## [346] -0.006483820 -0.009257075 -0.007240098 -0.009463166 -0.009157088
## [351] -0.009901591 -0.007051639 -0.007575529 -0.008339259 -0.006930927
## [356] -0.007790772 -0.007575529 -0.008776221 -0.007790772 -0.008017500
## [361] -0.008509158 -0.007940594 -0.007113450 -0.006930927 -0.006380217
## [366] -0.007790772 -0.007051639 -0.011323103 -0.009157088 -0.007370942
## [371] -0.006536785 -0.010504678 -0.007940594 -0.006871983 -0.008776221
## [376] -0.007240098 -0.011037651 -0.007240098 -0.006134045 -0.007304983
## [381] -0.007240098 -0.009257075 -0.007575529 -0.006700543 -0.007240098
## [386] -0.007240098 -0.007575529 -0.007717791 -0.008509158 -0.008095783
## [391] -0.007940594 -0.008339259 -0.007940594 -0.008175479 -0.005817374
## [396] -0.010017061 -0.009257075 -0.009157088 -0.008596506 -0.011037651
## [401] -0.007865029 -0.005302728 -0.006536785 -0.006930927 -0.005126465
## [406] -0.010135024 -0.009257075 -0.008776221 -0.008339259 -0.006536785
## [411] -0.006645128 -0.009257075 -0.006930927 -0.007575529 -0.009569394
## [416] -0.007940594 -0.005126465 -0.007240098 -0.008339259 -0.009359081
## [421] -0.008962947 -0.009257075 -0.008017500 -0.010017061 -0.007575529
## [426] -0.007717791 -0.010899824 -0.007790772 -0.008339259 -0.009677829
## [431] -0.008175479 -0.011936499 -0.009463166 -0.007051639 -0.007940594
## [436] -0.006645128 -0.006930927 -0.009569394 -0.007940594 -0.007240098
## [441] -0.006134045 -0.009788538 -0.010135024 -0.008868684 -0.008017500
## [446] -0.007113450 -0.005490429 -0.004600293 -0.005451922 -0.007575529
## [451] -0.006590548 -0.007240098 -0.007304983 -0.007240098 -0.009788538
## [456] -0.009257075 -0.007370942 -0.005949335 -0.006380217 -0.007940594
## [461] -0.009788538 -0.008962947 -0.010633438 -0.007575529 -0.007240098
## [466] -0.008423423 -0.007575529 -0.006380217 -0.007790772 -0.008339259
## [471] -0.006930927 -0.007646053 -0.009257075 -0.007575529 -0.008776221
## [476] -0.006134045 -0.008509158 -0.007865029 -0.008776221 -0.009257075
## [481] -0.008776221 -0.006990806 -0.004142083 -0.006930927 -0.010378748
## [486] -0.009569394 -0.007438002 -0.008685511 -0.005690681 -0.009359081
## [491] -0.010633438 -0.009257075 -0.009257075 -0.008776221 -0.004463991
## [496] -0.007240098 -0.009059065 -0.009463166 -0.008509158 -0.007940594
## [501] -0.007865029 -0.009059065 -0.007575529 -0.005126465 -0.006645128
## [506] -0.007575529 -0.011777523 -0.010378748 -0.008509158 -0.008339259
## [511] -0.006645128 -0.008509158 -0.007240098 -0.007646053 -0.009059065
## [516] -0.007717791 -0.006134045 -0.008017500 -0.007940594 -0.009788538
## [521] -0.005690681 -0.007438002 -0.008017500 -0.007240098 -0.007575529
## [526] -0.010255559 -0.008596506 -0.008776221 -0.008776221 -0.007240098
## [531] -0.007370942 -0.007304983 -0.008423423 -0.007940594 -0.008776221
## [536] -0.009257075 -0.009463166 -0.010633438 -0.009788538 -0.006645128
## [541] -0.008339259 -0.006930927 -0.007575529 -0.009257075 -0.009569394
## [546] -0.008776221 -0.008509158 -0.008017500 -0.011037651 -0.008685511
## [551] -0.006645128 -0.007940594 -0.008776221 -0.006930927 -0.008339259
## [556] -0.011178707 -0.005904743 -0.008596506 -0.007865029 -0.005302728
## [561] -0.005339319 -0.009059065 -0.006700543 -0.005529437 -0.007240098
## [566] -0.007717791 -0.007240098 -0.008685511 -0.007940594 -0.006930927
## [571] -0.006930927 -0.007051639 -0.007717791 -0.008962947 -0.009788538
## [576] -0.006380217 -0.006645128 -0.006230390 -0.008175479 -0.007790772
## [581] -0.005904743 -0.007575529 -0.004572427 -0.007940594 -0.009257075
## [586] -0.005690681 -0.008339259 -0.006930927 -0.007865029 -0.004804417
## [591] -0.007575529 -0.010378748 -0.007176262 -0.008596506 -0.008339259
## [596] -0.008509158 -0.010378748 -0.007865029 -0.008339259 -0.010899824
## [601] -0.005058938 -0.008175479 -0.007575529 -0.006930927 -0.007940594
## [606] -0.010633438 -0.007240098 -0.007940594 -0.008339259 -0.007575529
## [611] -0.009569394 -0.006813950 -0.008509158 -0.006536785 -0.007790772
## [616] -0.009257075 -0.009901591 -0.007575529 -0.008509158 -0.009788538
## [621] -0.007304983 -0.006930927 -0.008256625 -0.009157088 -0.009257075
## [626] -0.009257075 -0.005904743 -0.008017500 -0.008962947 -0.006645128
## [631] -0.008339259 -0.010899824 -0.007575529 -0.008423423 -0.006380217
## [636] -0.008017500 -0.007575529 -0.007790772 -0.010378748 -0.005732346
## [641] -0.007240098 -0.006134045 -0.006431636 -0.006990806 -0.007575529
## [646] -0.007304983 -0.007790772 -0.009257075 -0.008017500 -0.007790772
## [651] -0.009059065 -0.008339259 -0.006134045 -0.007646053 -0.007438002
## [656] -0.007438002 -0.006645128 -0.007575529 -0.009257075 -0.009463166
## [661] -0.009059065 -0.007240098 -0.005817374 -0.007575529 -0.009059065
## [666] -0.008509158 -0.011622386 -0.010017061 -0.009569394 -0.009059065
## [671] -0.007940594 -0.007304983 -0.008509158 -0.008095783 -0.008339259
## [676] -0.008175479 -0.008509158 -0.009257075 -0.009463166 -0.009569394
## [681] -0.007865029 -0.008339259 -0.004142083 -0.007051639 -0.005490429
## [686] -0.009257075 -0.008339259 -0.006380217 -0.007575529 -0.008596506
## [691] -0.009569394 -0.004960654 -0.006380217 -0.009059065 -0.007790772
## [696] -0.009257075 -0.006930927 -0.004260709 -0.009157088 -0.008017500
## [701] -0.007575529 -0.007370942 -0.005904743 -0.007940594 -0.006756810
## [706] -0.007940594 -0.004960654 -0.006380217 -0.010378748 -0.006380217
## [711] -0.009257075 -0.009359081 -0.009059065 -0.008509158 -0.009257075
## [716] -0.007438002 -0.007940594 -0.005092496 -0.007575529 -0.009257075
## [721] -0.008339259 -0.006134045 -0.008868684 -0.005949335 -0.008685511
## [726] -0.009257075 -0.007717791 -0.007113450 -0.006230390 -0.007575529
## [731] -0.010504678 -0.008776221 -0.007940594 -0.005302728 -0.006086890
## [736] -0.009569394 -0.005904743 -0.007717791 -0.007575529 -0.007240098
## [741] -0.007113450 -0.007940594 -0.005302728 -0.009463166 -0.007113450
## [746] -0.004096315 -0.007575529 -0.007240098 -0.006086890 -0.008776221
## [751] -0.009359081 -0.009788538 -0.007113450 -0.006756810 -0.008095783
## [756] -0.005195663 -0.008339259 -0.007304983 -0.008256625 -0.010135024
## [761] -0.008776221 -0.005904743 -0.009359081 -0.009059065 -0.008339259
## [766] -0.009257075 -0.007575529 -0.008256625 -0.007940594 -0.009788538
## [771] -0.009059065 -0.006645128 -0.006645128 -0.008017500 -0.008962947
## [776] -0.008339259 -0.007240098 -0.008509158 -0.008509158 -0.007370942
## [781] -0.008175479 -0.007940594 -0.007865029 -0.007113450 -0.008776221
## [786] -0.007240098 -0.007506188 -0.009157088 -0.006930927 -0.006431636
## [791] -0.007304983 -0.006380217 -0.007646053 -0.008175479 -0.009059065
## [796] -0.007575529 -0.007717791 -0.008339259 -0.010633438 -0.006645128
## [801] -0.007575529 -0.009257075 -0.007438002 -0.005949335 -0.005732346
## [806] -0.008868684 -0.007575529 -0.006930927 -0.007790772 -0.008776221
## [811] -0.004960654 -0.008017500 -0.008868684 -0.008685511 -0.009059065
## [816] -0.007370942 -0.008776221 -0.008776221 -0.006645128 -0.006930927
## [821] -0.007790772 -0.007575529 -0.007240098 -0.006645128 -0.007575529
## [826] -0.009359081 -0.006813950 -0.007438002 -0.009257075 -0.008339259
## [831] -0.007575529 -0.008685511 -0.007575529 -0.007940594 -0.009059065
## [836] -0.007790772 -0.007438002 -0.007717791 -0.008685511 -0.008776221
## [841] -0.006645128 -0.008423423 -0.007240098 -0.007940594 -0.008596506
## [846] -0.007940594 -0.007646053 -0.006700543 -0.010378748 -0.006645128
## [851] -0.009901591 -0.006645128 -0.007438002 -0.008423423 -0.008509158
## [856] -0.007575529 -0.010765121 -0.008776221 -0.007240098 -0.006813950
## [861] -0.007506188 -0.005690681 -0.008868684 -0.007113450 -0.009569394
## [866] -0.008962947 -0.006645128 -0.009257075 -0.007865029 -0.007240098
## [871] -0.009157088 -0.007240098 -0.009788538 -0.008962947 -0.009257075
## [876] -0.007575529 -0.008175479 -0.007790772 -0.008175479 -0.008776221
## [881] -0.009901591 -0.005774573 -0.006590548 -0.008962947 -0.008339259
## [886] -0.006813950 -0.008017500 -0.007790772 -0.007240098 -0.008175479
## [891] -0.007790772 -0.007940594 -0.007240098 -0.006134045 -0.008339259
## [896] -0.008776221 -0.008776221 -0.009463166 -0.008776221 -0.007940594
## [901] -0.006930927 -0.008095783 -0.010633438 -0.008509158 -0.006181874
## [906] -0.008509158 -0.008596506 -0.006380217 -0.010378748 -0.008776221
## [911] -0.008509158 -0.010135024 -0.007790772 -0.009901591 -0.010504678
## [916] -0.008017500 -0.007176262 -0.006813950 -0.007940594 -0.008339259
## [921] -0.004517613 -0.008962947 -0.009059065 -0.008868684 -0.010504678
## [926] -0.005230908 -0.006645128 -0.008017500 -0.007940594 -0.007304983
## [931] -0.008095783 -0.006930927 -0.007575529 -0.009257075 -0.008423423
## [936] -0.010017061 -0.007240098 -0.009257075 -0.006380217 -0.007717791
## [941] -0.008776221 -0.011037651 -0.006645128 -0.007575529 -0.009788538
## [946] -0.007865029 -0.010255559 -0.008962947 -0.007575529 -0.007113450
## [951] -0.007790772 -0.006930927 -0.009257075 -0.006645128 -0.006930927
## [956] -0.011936499 -0.008339259 -0.007240098 -0.005904743 -0.005994549
## [961] -0.006645128 -0.007790772 -0.007240098 -0.006380217 -0.005490429
## [966] -0.006645128 -0.007575529 -0.008776221 -0.008962947 -0.007240098
## [971] -0.006086890 -0.007575529 -0.008339259 -0.006329547 -0.010017061
## [976] -0.009359081 -0.006645128 -0.006380217 -0.005126465 -0.011037651
## [981] -0.008685511 -0.007176262 -0.007240098 -0.012266534 -0.008256625
## [986] -0.007865029 -0.010378748 -0.008339259 -0.009257075 -0.007646053
lambda değeri -1.175 bulunmuştur. Bu değer mutlak değerce 1’e oldukça yakın. Ancak negatif değer olduğu için yalnızca ters dönüşüm uygulamak uygun olacaktır.
Elbette bu dönüşümleri tek tek uygulayıp değişkenleri tekrar gözden geçirmeliyiz.
bwt değişkeni için dönüşüm uygulamamaya karar vermiştik. Değişken normale yakındı ancak uç değerleri vardı. Lambda değerine göre bu uç değerlerin, tam olarak dönüşüm gerektirmediğine karar verdik.
age değişkeni için ters logaritmik ve ters karekök dönüşümü deneyeceğiz. Bu kararı lambda değeri ile vermiştik. Değişken, sağa çarpık olduğu için iki dönüşüm de uygulanmaya müsaittir.
Ters Logaritmik Dönüşüm
train$age_terslog <- 1/(log10(train$age))
Ters Karekök Dönüşümü
train$age_terskok <- 1/(sqrt(train$age))
Histogramlara bakalım
hist(train$age_terslog, col = "lightpink",main="tersLog(age)")
hist(train$age_terskok, col = "lightpink",main="terskok(age)")
Histogramlara baktığımızda, ters kök dönüşümünün daha iyi sonuç verdiğini görmekteyiz. Normale oldukça yakın bir histogram görmekteyiz.
O halde age değişkeni için en iyi dönüşüm ters kök dönüşümü olmuştur. Ters logaritmik dönüşümünü veri setinden silip diğer değişkenler ile devam edelim.
train$age_terslog <- NULL
height değişkeni için kare dönüşümü deneyeceğiz. Bu kararı lambda değeri ile vermiştik. Değişken, hafif sola çarpık olduğu için (ve alacağımız üs > 1 olduğu için) uygulanmaya müsaittir.
train$height_kare <- (train$height)^2
hist(train$height_kare, col = "lightpink",main="kare(height)")
Histogram pek de normal durmamaktadır. Bu değişken için lambda değeri 1.825 bulunmuştu. Bir de değişkenin dönüşümsüz haline bakalım.
hist(train$height, col = "lightpink",main="height")
Karesel dönüşüm ile dönüşümzsüz değişken arasında seçim yapmamız gerekiyor. Histogramdan istediğimiz gibi sonuç alamadığımız için height değişkenini normal hali ile bırakalım.
Dönüşümlü değişkeni silelim.
train$height_kare <- NULL
weight değişkeni için ters dönüşümü deneyeceğiz. Bu kararı lambda değeri ile vermiştik.
train$weight_ters <- 1/(train$weight)
hist(train$weight_ters, col = "lightpink",main="ters(weight)")
Histogramın normale oldukça yakın olduğunu görmekteyiz.
Scatter plotuna da bakalım;
ggplot(train, aes(weight_ters,bwt,label=rownames(train)))+
geom_point(size=0.90) + geom_text(label=rownames(train),nudge_x=0,check_overlap=T,size=2.5)+
geom_smooth(method="loess",col="red",se=FALSE)
## `geom_smooth()` using formula = 'y ~ x'
Hafif bir eğrisellik olduğunu görmekteyiz.
Gestation kategorisi için bwt kutu çizimi yapalım.
is_outlier <- function(x) {
return(x < quantile(x, 0.25) - 1.5 * IQR(x) | x > quantile(x, 0.75) + 1.5 * IQR(x))
warning = FALSE}
is_outlier
## function(x) {
## return(x < quantile(x, 0.25) - 1.5 * IQR(x) | x > quantile(x, 0.75) + 1.5 * IQR(x))
## warning = FALSE}
İlişkiye daha önce bakmıştık. Şuan bunu yapma nedenimiz, potansiyel aykırı değerleri not etmek.
Bunu yaparken dag kullanacağız.
library(dplyr)
dat <- train %>% tibble::rownames_to_column(var="outlier") %>% group_by(gestation) %>%
mutate(is_outlier=ifelse(is_outlier(bwt), bwt, as.numeric(NA)))
dat
## # A tibble: 990 × 11
## # Groups: gestation [3]
## outlier bwt gestation parity age height weight smoke age_terskok weight…¹
## <chr> <dbl> <fct> <fct> <dbl> <dbl> <dbl> <fct> <dbl> <dbl>
## 1 2 3.20 Healthy No 33 163. 60.8 No 0.174 0.0165
## 2 3 3.63 Healthy No 28 163. 51.8 Yes 0.189 0.0193
## 3 5 3.06 Healthy No 23 170. 56.2 Yes 0.209 0.0178
## 4 6 3.86 Healthy No 25 157. 41.8 No 0.2 0.0239
## 5 7 3.91 Early No 33 157. 80.1 No 0.174 0.0125
## 6 8 3.74 Early No 23 165. 63 No 0.209 0.0159
## 7 10 4.05 Late No 30 168. 61.2 Yes 0.183 0.0163
## 8 11 3.97 Late No 27 173. 54 No 0.192 0.0185
## 9 12 4.08 Healthy No 32 163. 55.8 Yes 0.177 0.0179
## 10 13 4.00 Healthy No 23 160. 57.6 Yes 0.209 0.0174
## # … with 980 more rows, 1 more variable: is_outlier <dbl>, and abbreviated
## # variable name ¹weight_ters
dat$outlier[which(is.na(dat$is_outlier))] <- as.numeric(NA)
ggplot(dat, aes(y=bwt, x=factor(gestation),fill=gestation))+
geom_boxplot() +
geom_text(aes(label=outlier),na.rm=TRUE, nudge_x=0.15,size=3.5)+
labs(title="gestation kategorileri bazında bwt Kutu Cizimi",x="gestation Kategorileri", y = "bwt")+
scale_fill_discrete(name = "gestation Kategorileri")
Healthy kategorisinde aykırı değerler olduğunu görmekteyiz. Ancak gözlemler iç içe geçtiği için net olareak hangi gözlem oldukları görünmemekte. Bu sebeple healthy kategorisi için boxplot oluşturalım.
library(ggplot2)
ggplot(dat %>% filter(gestation == "Healthy"), aes(x = factor(gestation), y = bwt)) +
geom_boxplot() +
geom_text(aes(label=outlier),na.rm=TRUE,nudge_x=0.15,size=5.5)+
labs(title = "Healthy Kategorisi için bwt Kutu Çizimi", x = "Gestation Kategorileri", y = "bwt")
Yine görünmüyor. “position” ayarı ile daha okunabilir hale getirelim.
ggplot(dat %>% filter(gestation == "Healthy"), aes(x = factor(gestation), y = bwt)) +
geom_boxplot() +
geom_text(aes(label = outlier), na.rm = TRUE, position = position_jitter(width = 0.7), size = 5.5) +
labs(title = "Healthy Kategorisi için bwt Kutu Çizimi", x = "Gestation Kategorileri", y = "bwt")
Potansiyel aykırı değerler;
240, 410, 557, 633, 739, 748, 815, 873, 1100
310, 530, 1064, 1149, 1150
Weğişkeninin dönüşüme uğrayan halindeki eğriselliğe dönebiliriz. Öncelikle merkezileştirme yapmalıyız.
mean_weight <- mean(train$weight)
train$weight_merk <- (train$weight - mean_weight)
library(ggplot2)
ggplot(train, aes(x = weight_merk, y =bwt )) +
stat_smooth(method = "lm", se = FALSE, color = "green", formula = y ~ x) +
stat_smooth(method = "lm", se = FALSE, color = "blue", formula = y ~ x + I(x ^ 2)) +
stat_smooth(method = "lm", se = FALSE, color = "red", formula = y ~ x + I(x ^ 2)+ I(x ^ 3)) +
geom_point(colour = "black", size = 1)
Yeşil renk, bwt’ye karşı weight’i temsil ediyor. Mavi renk, bwt’ye karşı weight ve weight^2 ’yi temsil ediyor. Kırmızı renk, bwt’ye karşı weight, weight^2, weight^3 ’ü temsil ediyor.
Kırmızı ve mavi iyi gibi duruyor. Bu işlemi weight’in dönüştürülmüş hali ile de yapalım.
Öncelikle merkezileştirelim.
mean_weight_ters <- mean(train$weight_ters)
train$weight_ters_merk <- (train$weight_ters - mean_weight_ters)
library(ggplot2)
ggplot(train, aes(x = weight_ters_merk, y =bwt )) +
stat_smooth(method = "lm", se = FALSE, color = "green", formula = y ~ x) +
stat_smooth(method = "lm", se = FALSE, color = "blue", formula = y ~ x + I(x ^ 2)) +
stat_smooth(method = "lm", se = FALSE, color = "red", formula = y ~ x + I(x ^ 2)+ I(x ^ 3)) +
geom_point(colour = "black", size = 1)
Kırmızı ve mavi oldukça iyi duruyor. Modelleme aşamasında bu durumu gözden geçirip modele ekleyeceğiz.
Değişkenlerin saçılım matrislerini inceleyelim.
Ham veri ile;
library(PerformanceAnalytics)
orj <- train[,c(4,5,6,1)]
chart.Correlation(orj, histogram=TRUE, pch=19)
Dönüştülümüş veri ile;
library(PerformanceAnalytics)
orj <- train[,c(8,5,9,1)]
chart.Correlation(orj, histogram=TRUE, pch=19)
Öncelikle ilişki katsayılarına bakalım. Default olarak Pearson ile ilişki katsayıları verildiği için ve tam olarak simetriklik sağlamadığımız için yorumlamamak en doğrusu olur.
Saçılımlara baktığımızda en büyük değişimin bwt’ye karşı weight değişkeninde olduğunu görürüz. Ham veriye göre oldukça homojen bir dağılıma dönmüştür.
bwt bağımlı değişkeni ile en iyi uyumu sağlayan nicel değişken height iken ilişkisiz sayılabilen değişken ise age idi. Ancak kurulacak modellerde ilk önce tüm değişknlere tek tek bakarak ilerleyelim. Nihai sonucu, kurulan modellerde yer alan anlamlılıkları karşılaştırarak bulalım.
Seçenek model 1
fit1 <- lm(bwt ~ gestation + parity + age + height + weight + smoke, data = train)
summary(fit1)
##
## Call:
## lm(formula = bwt ~ gestation + parity + age + height + weight +
## smoke, data = train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.68397 -0.29562 -0.01541 0.29626 1.43332
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.060e-01 3.881e-01 2.077 0.0381 *
## gestationHealthy 5.507e-01 5.530e-02 9.959 < 2e-16 ***
## gestationLate 7.432e-01 6.898e-02 10.775 < 2e-16 ***
## parityYes -6.756e-02 3.601e-02 -1.876 0.0610 .
## age 2.668e-05 2.762e-03 0.010 0.9923
## height 1.207e-02 2.558e-03 4.720 2.7e-06 ***
## weight 3.675e-03 1.781e-03 2.064 0.0393 *
## smokeYes -2.513e-01 2.998e-02 -8.382 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4594 on 982 degrees of freedom
## Multiple R-squared: 0.2019, Adjusted R-squared: 0.1962
## F-statistic: 35.49 on 7 and 982 DF, p-value: < 2.2e-16
Intercept’teki p-value < 0.05 ise Intercept anlamlı bir etki gösteriyordur.
Bu model için değerin 0.0270 çıktığını görmekteyiz. Yani bu model anlamlıdır. Ancak tek * olduğu için, diğer modellerde daha anlamlı sonuç çıkma ihtimali de yüksektir.
age değişkeni anlamlı bulunmamıştır. parity ve weight değişkenleri için de azdır. Şimdilik, age ve parity değişkenlerini çıkarıp yeni bir model kuralım.
Seçenek model 2
fit2 <- lm(bwt ~ gestation + height + weight + smoke, data=train)
summary(fit2)
##
## Call:
## lm(formula = bwt ~ gestation + height + weight + smoke, data = train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.6617 -0.2916 -0.0040 0.2880 1.4540
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.832185 0.381197 2.183 0.0293 *
## gestationHealthy 0.546456 0.055317 9.879 < 2e-16 ***
## gestationLate 0.734741 0.068919 10.661 < 2e-16 ***
## height 0.011683 0.002553 4.576 5.34e-06 ***
## weight 0.004090 0.001763 2.319 0.0206 *
## smokeYes -0.249159 0.029964 -8.315 3.02e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4598 on 984 degrees of freedom
## Multiple R-squared: 0.1986, Adjusted R-squared: 0.1945
## F-statistic: 48.77 on 5 and 984 DF, p-value: < 2.2e-16
Intercept’teki p-value = 0.0201 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur. Ancak tek * olduğu için, diğer modellerde daha anlamlı sonuç çıkma ihtimali de yüksektir.
Model incelendiğinde weight değişkeninin en az anlamlı değişken olduğu görünmektedir.
YORUM
gestationHealthy için; Diğer değişkenlerin etkileri sabit olmak üzere; sağlıklı sürede doğan bebeklerin erken ve geç doğan bebeklere göre doğum ağırlıkları 0.531463 kg fazladır.
gestationLate için; Diğer değişkenlerin etkileri sabit olmak üzere; geç doğan bebeklerin erken ve sağlıklı sürede doğan bebeklere göre doğum ağırlıkları 0.724341 kg fazladır.
height için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin boylarındaki 1 cm’lik artış, bebeklerin kilolarında yaklaşık 0.011439 kg’lık artışa sebep olur.
weight için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin kilolarındaki 1 kg’lık artış, bebeklerin kilolarında yaklaşık 0.004066 kg’lık artışa sebep olur.
smokeYes için; Diğer değişkenlerin etkileri sabit olmak üzere; sigara içen annelerin bebeklerinin doğum ağırlığı, sigara içmeyen annelerin bebeklerinin doğum ağırlıklarından 0.249061 kg azdır.
Artıklara da bakalım;
library(ggfortify)
autoplot(fit2)
Scale Location’a baktığımızda, yoğunlukları bir kenara bırakırsak dikdörtgene oldukça yakın bir dağılım olduğunu görürüz. 530 ve 1064 numaralı gözlemler biraz uzak durmaktadır.
Residuals vs Fitted kısmında da aynı yorumu yapabiliriz. Dikdörtgen görünümü mevcut. Normal Q-Q grafiğine baktığımızda, dağılımın normale oldukça yakın olduğunu görmekteyiz.
Seçenek model 3
Polinomial modelleme yapalım.
Weight’in kendisini, karesini ve küpünü ekleyelim.
fit3 <- lm(bwt ~ weight_ters_merk + I(weight_ters_merk^2)+I(weight_ters_merk^3) + gestation + height + smoke , data = train)
summary(fit3)
##
## Call:
## lm(formula = bwt ~ weight_ters_merk + I(weight_ters_merk^2) +
## I(weight_ters_merk^3) + gestation + height + smoke, data = train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.6654 -0.2934 -0.0152 0.2892 1.4694
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.405e+00 4.391e-01 3.200 0.00142 **
## weight_ters_merk -2.363e+01 1.009e+01 -2.341 0.01941 *
## I(weight_ters_merk^2) -2.283e+03 1.515e+03 -1.507 0.13213
## I(weight_ters_merk^3) 1.761e+05 3.501e+05 0.503 0.61510
## gestationHealthy 5.507e-01 5.529e-02 9.960 < 2e-16 ***
## gestationLate 7.365e-01 6.881e-02 10.703 < 2e-16 ***
## height 9.679e-03 2.692e-03 3.595 0.00034 ***
## smokeYes -2.462e-01 2.994e-02 -8.222 6.31e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.459 on 982 degrees of freedom
## Multiple R-squared: 0.203, Adjusted R-squared: 0.1973
## F-statistic: 35.73 on 7 and 982 DF, p-value: < 2.2e-16
Intercept’teki p-value = 0.000810 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur. Ayrıca 3 tane *** olduğu için,sonuç oldukça iyi görünmektedir..
Model incelendiğinde weight_ters_merk değişkeninin en az anlamlı değişken olduğu görünmektedir.
YORUM
weight_ters_merk Diğer değişkenlerin etkileri sabit olmak üzere; annelerin kilolarındaki 1 kg’lık artış, bebeklerin kilolarında yaklaşık 2.440e+01 kg’lık azalışa sebep olur.
weight_ters_merk^2 ve weight_ters_merk^3 değişkenlerinde yıldızlar olmadığı yani anlamlı olmadıkları için yorumlamayalım. Bu durum, annelerin boylarının verildiği weight değişkeninin, ters dönüşümlü halini kullandığımız için de yaşanıyor olabilir.
gestationHealthy için; Diğer değişkenlerin etkileri sabit olmak üzere; sağlıklı sürede doğan bebeklerin erken ve geç doğan bebeklere göre doğum ağırlıkları 5.353e-01 kg fazladır.
gestationLate için; Diğer değişkenlerin etkileri sabit olmak üzere; geç doğan bebeklerin erken ve sağlıklı sürede doğan bebeklere göre doğum ağırlıkları 7.237e-01 kg fazladır.
height için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin boylarındaki 1 cm’lik artış, bebeklerin kilolarında yaklaşık 9.381e-03 kg’lık artışa sebep olur.
smokeYes için; Diğer değişkenlerin etkileri sabit olmak üzere; sigara içen annelerin bebeklerinin doğum ağırlığı, sigara içmeyen annelerin bebeklerinin doğum ağırlıklarından 2.458e-01 kg azdır.
Artıklara da bakalım;
library(ggfortify)
autoplot(fit3)
Seçenek model 4
fit4 <- lm(bwt ~ weight_ters + gestation + height + smoke , data = train)
summary(fit4)
##
## Call:
## lm(formula = bwt ~ weight_ters + gestation + height + smoke,
## data = train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.65842 -0.28731 -0.00674 0.29071 1.46326
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.568551 0.496011 3.162 0.00161 **
## weight_ters -18.340376 6.495538 -2.824 0.00485 **
## gestationHealthy 0.548904 0.055264 9.932 < 2e-16 ***
## gestationLate 0.735519 0.068830 10.686 < 2e-16 ***
## height 0.010588 0.002637 4.015 6.40e-05 ***
## smokeYes -0.247045 0.029948 -8.249 5.08e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4592 on 984 degrees of freedom
## Multiple R-squared: 0.2007, Adjusted R-squared: 0.1966
## F-statistic: 49.42 on 5 and 984 DF, p-value: < 2.2e-16
Anlamlı çıktığını rahatlıkla görebiliriz.
Intercept’teki p-value = 0.00105 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur.
Model incelendiğinde weight_ters değişkeninin en az anlamlı değişken olduğu görünmektedir. Ancak ** ile en az anlamlı değişkenin bile anlamı oldukça iyidir.
YORUM
weight_ters için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin kilolarındaki 1 kg’lık artış, bebeklerin kilolarında yaklaşık 18.463429 kg’lık azalışa sebep olur.
Bu durum 6.524609’luk standart sapma verse de, doğası gereği mümkün olamaz. Bu durum test aşamasında gözden geçirilecektir.
gestationHealthy için; Diğer değişkenlerin etkileri sabit olmak üzere; sağlıklı sürede doğan bebeklerin erken ve geç doğan bebeklere göre doğum ağırlıkları 0.533971 kg fazladır.
gestationLate için; Diğer değişkenlerin etkileri sabit olmak üzere; geç doğan bebeklerin erken ve sağlıklı sürede doğan bebeklere göre doğum ağırlıkları 0.724795 kg fazladır.
height için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin boylarındaki 1 cm’lik artış, bebeklerin kilolarında yaklaşık 0.010326 kg’lık artışa sebep olur.
smokeYes için; Diğer değişkenlerin etkileri sabit olmak üzere; sigara içen annelerin bebeklerinin doğum ağırlığı, sigara içmeyen annelerin bebeklerinin doğum ağırlıklarından 0.246880 kg azdır.
Artıklara da bakalım;
library(ggfortify)
autoplot(fit4)
Seçenek model 5
height değişkeni, bwt değişken ile en ilişkili değişkendi. Bu sebeple height ile bir model kuralım.
fit5 <- lm(bwt ~ height, data = train)
summary(fit5)
##
## Call:
## lm(formula = bwt ~ height, data = train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.87191 -0.30172 0.01659 0.32198 1.65891
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.877096 0.404773 2.167 0.0305 *
## height 0.015470 0.002487 6.219 7.37e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5029 on 988 degrees of freedom
## Multiple R-squared: 0.03767, Adjusted R-squared: 0.0367
## F-statistic: 38.68 on 1 and 988 DF, p-value: 7.369e-10
Anlamlı çıktığını görebiliriz.
Intercept’teki p-value = 0.0228 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur.
YORUM
height için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin boylarındaki 1 cm’lik artış, bebeklerin kilolarında yaklaşık 0.015202 kg’lık artışa sebep olur.
Artıklara da bakalım;
library(ggfortify)
autoplot(fit5)
Scale Location’a baktığımızda, yoğunlukları bir kenara bırakırsak dikdörtgene oldukça yakın bir dağılım olduğunu görürüz. 913, 979 ve 1036 numaralı gözlemler biraz uzak durmaktadır.
Residuals vs Fitted kısmında da aynı yorumu yapabiliriz. Dikdörtgen görünümü mevcut. Normal Q-Q grafiğine baktığımızda, dağılımın normale oldukça yakın olduğunu görmekteyiz.
Seçenek model 6
Dönüşüm uygulamasından sonra gestation değişkeni ile bir aykırı değer incelemesi yapmıştık.
Potansiyel aykırı değerler; 240, 410, 557, 633, 739, 748, 815, 873, 1100, 310, 530, 1064, 1149, 1150 olarak bulunmuştu.
Artık incelemelerinde 530 ve 1064. gözlemlerin eşleştiğini görmekteyiz. O halde bu gözlemleri çıkararak model kuralım.
newTrain <- subset(train, !(row.names(train) %in% c(530, 1064)))
fit6 <- lm(bwt ~ gestation + height + weight + smoke, data = newTrain)
summary(fit6)
##
## Call:
## lm(formula = bwt ~ gestation + height + weight + smoke, data = newTrain)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.46335 -0.29185 -0.00775 0.28555 1.44925
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.734500 0.377710 1.945 0.0521 .
## gestationHealthy 0.550167 0.054701 10.058 < 2e-16 ***
## gestationLate 0.734022 0.068145 10.771 < 2e-16 ***
## height 0.012305 0.002530 4.864 1.34e-06 ***
## weight 0.004071 0.001744 2.334 0.0198 *
## smokeYes -0.254695 0.029649 -8.590 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4547 on 982 degrees of freedom
## Multiple R-squared: 0.2069, Adjusted R-squared: 0.2029
## F-statistic: 51.24 on 5 and 982 DF, p-value: < 2.2e-16
Intercept’teki p-value = 0.0368 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur.
Model incelendiğinde weight değişkeninin en az anlamlı değişken olduğu görünmektedir.
YORUM
gestationHealthy için; Diğer değişkenlerin etkileri sabit olmak üzere; sağlıklı sürede doğan bebeklerin erken ve geç doğan bebeklere göre doğum ağırlıkları 0.535106 kg fazladır.
gestationLate için; Diğer değişkenlerin etkileri sabit olmak üzere; geç doğan bebeklerin erken ve sağlıklı sürede doğan bebeklere göre doğum ağırlıkları 0.723526 kg fazladır.
height için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin boylarındaki 1 cm’lik artış, bebeklerin kilolarında yaklaşık 0.012062 kg’lık artışa sebep olur.
weight için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin kilolarındaki 1 kg’lık artış, bebeklerin kilolarında yaklaşık 0.004048 kg’lık artışa sebep olur.
smokeYes için; Diğer değişkenlerin etkileri sabit olmak üzere; sigara içen annelerin bebeklerinin doğum ağırlığı, sigara içmeyen annelerin bebeklerinin doğum ağırlıklarından 0.254613 kg azdır.
Artıklara da bakalım;
library(ggfortify)
autoplot(fit6)
Seçenek model 7
fit7 <- lm(bwt ~ height + weight , data = train)
summary(fit7)
##
## Call:
## lm(formula = bwt ~ height + weight, data = train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.88990 -0.30125 0.01809 0.31073 1.58429
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.117384 0.414141 2.698 0.00709 **
## height 0.012237 0.002777 4.407 1.16e-05 ***
## weight 0.004943 0.001909 2.589 0.00976 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5014 on 987 degrees of freedom
## Multiple R-squared: 0.04417, Adjusted R-squared: 0.04223
## F-statistic: 22.8 on 2 and 987 DF, p-value: 2.084e-10
Intercept’teki p-value = 0.00572 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur.
YORUM
height için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin boylarındaki 1 cm’lik artış, bebeklerin kilolarında yaklaşık 0.012159 kg’lık artışa sebep olur.
weight için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin kilolarındaki 1 kg’lık artış, bebeklerin kilolarında yaklaşık 0.004707 kg’lık artışa sebep olur.
Artıklara da bakalım;
library(ggfortify)
autoplot(fit7)
Seçenek model 8
fit8 <- lm(bwt ~ gestation + weight, data = train)
summary(fit8)
##
## Call:
## lm(formula = bwt ~ gestation + weight, data = train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.65863 -0.32612 -0.00326 0.29749 1.56451
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.352092 0.110443 21.297 < 2e-16 ***
## gestationHealthy 0.548198 0.057540 9.527 < 2e-16 ***
## gestationLate 0.744800 0.071754 10.380 < 2e-16 ***
## weight 0.008884 0.001632 5.442 6.63e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4792 on 986 degrees of freedom
## Multiple R-squared: 0.1278, Adjusted R-squared: 0.1251
## F-statistic: 48.15 on 3 and 986 DF, p-value: < 2.2e-16
Intercept’teki p-value = 2e-16 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur.
YORUM
gestationHealthy için; Diğer değişkenlerin etkileri sabit olmak üzere; sağlıklı sürede doğan bebeklerin erken ve geç doğan bebeklere göre doğum ağırlıkları 0.534458 kg fazladır.
gestationLate için; Diğer değişkenlerin etkileri sabit olmak üzere; geç doğan bebeklerin erken ve sağlıklı sürede doğan bebeklere göre doğum ağırlıkları 0.738442 kg fazladır.
weight için; Diğer değişkenlerin etkileri sabit olmak üzere; annelerin kilolarındaki 1 kg’lık artış, bebeklerin kilolarında yaklaşık 0.008743 kg’lık artışa sebep olur.
Seçenek model 9
fit9 <- lm(bwt ~ gestation + smoke, data = train)
summary(fit9)
##
## Call:
## lm(formula = bwt ~ gestation + smoke, data = train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.50362 -0.32440 -0.00107 0.28374 1.47313
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.96453 0.05496 53.936 <2e-16 ***
## gestationHealthy 0.55193 0.05640 9.786 <2e-16 ***
## gestationLate 0.75112 0.07034 10.678 <2e-16 ***
## smokeYes -0.25646 0.03046 -8.419 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4698 on 986 degrees of freedom
## Multiple R-squared: 0.1618, Adjusted R-squared: 0.1593
## F-statistic: 63.45 on 3 and 986 DF, p-value: < 2.2e-16
Intercept’teki p-value = 2e-16 < 0.05 olduğundan Intercept anlamlı bir etki gösteriyordur.
YORUM
gestationHealthy için; Diğer değişkenlerin etkileri sabit olmak üzere; sağlıklı sürede doğan bebeklerin erken ve geç doğan bebeklere göre doğum ağırlıkları 0.53716 kg fazladır.
gestationLate için; Diğer değişkenlerin etkileri sabit olmak üzere; geç doğan bebeklerin erken ve sağlıklı sürede doğan bebeklere göre doğum ağırlıkları 0.73980 kg fazladır.
smokeYes için; Diğer değişkenlerin etkileri sabit olmak üzere; sigara içen annelerin bebeklerinin doğum ağırlığı, sigara içmeyen annelerin bebeklerinin doğum ağırlıklarından 0.25567 kg azdır.
Öncelikle test veri setini aktif edelim ve train veri setine yaptığımız işlemleri test için de yapalım. Ardından, train veri kümesi için oluşturulan anlamlı modellerin hatalaraını test veri kümesi için de bulup karşılaştırma yapacağız.
library(readxl)
test <- read_excel("train.xlsx")
gestation değişkenini kategorik değişken yapalım.
test$gestation <- factor(ifelse(test$gestation < 259, "Early",
ifelse(test$gestation >= 259 & test$gestation <= 294, "Healthy",
ifelse(test$gestation > 294, "Late", NA))),
levels = c("Healthy", "Late", "Early"),
labels = c("Healthy", "Late", "Early"))
categories <- c("Early", "Healthy", "Late")
test$gestation <- factor(test$gestation, levels = categories)
Dönüşümleri uygulayalım.
test$age_terskok <- 1/(sqrt(test$age))
test$weight_ters <- 1/(test$weight)
Oluşturulan modellerden fit2, fit4 fit5, fit6, fit7, fit8, ve fit9 modellerini seçelim.
Öncelikle train veri seti için hataları bulalım.
fit2_res <- as.data.frame(t(defaultSummary(data.frame(obs=train$bwt, pred=predict(fit2,train)))))
rownames(fit2_res) <- "fit2"
fit4_res <- as.data.frame(t(defaultSummary(data.frame(obs=train$bwt, pred=predict(fit4,train)))))
rownames(fit4_res) <- "fit4"
fit5_res <- as.data.frame(t(defaultSummary(data.frame(obs=train$bwt, pred=predict(fit5,train)))))
rownames(fit5_res) <- "fit5"
fit6_res <- as.data.frame(t(defaultSummary(data.frame(obs=newTrain$bwt, pred=predict(fit6,newTrain)))))
rownames(fit6_res) <- "fit6"
fit7_res <- as.data.frame(t(defaultSummary(data.frame(obs=train$bwt, pred=predict(fit7,train)))))
rownames(fit7_res) <- "fit7"
fit8_res <- as.data.frame(t(defaultSummary(data.frame(obs=train$bwt, pred=predict(fit8,train)))))
rownames(fit8_res) <- "fit8"
fit9_res <- as.data.frame(t(defaultSummary(data.frame(obs=train$bwt, pred=predict(fit9,train)))))
rownames(fit9_res) <- "fit9"
Test için hatalar;
fit2_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=test$bwt, pred=predict(fit2,test)))))
rownames(fit2_test_res) <- "fit2"
fit4_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=test$bwt, pred=predict(fit4,test)))))
rownames(fit4_test_res) <- "fit4"
fit5_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=test$bwt, pred=predict(fit5,test)))))
rownames(fit5_test_res) <- "fit5"
newTest <- subset(test, !(row.names(test) %in% c(530, 1064)))
fit6_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=newTest$bwt, pred=predict(fit6,newTest)))))
rownames(fit6_test_res) <- "fit6"
fit7_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=test$bwt, pred=predict(fit7,test)))))
rownames(fit7_test_res) <- "fit7"
fit8_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=test$bwt, pred=predict(fit8,test)))))
rownames(fit8_test_res) <- "fit8"
fit9_test_res <- as.data.frame(t(defaultSummary(data.frame(obs=test$bwt, pred=predict(fit9,test)))))
rownames(fit9_test_res) <- "fit9"
Train sonuçları;
round(rbind(fit2_res, fit5_res, fit6_res, fit7_res, fit8_res ,fit9_res),3)
## RMSE Rsquared MAE
## fit2 0.458 0.199 0.359
## fit5 0.502 0.038 0.389
## fit6 0.453 0.207 0.357
## fit7 0.501 0.044 0.388
## fit8 0.478 0.128 0.377
## fit9 0.469 0.162 0.370
Test sonuçları;
round(rbind(fit2_test_res, fit5_test_res, fit6_test_res, fit7_test_res, fit8_test_res ,fit9_test_res),3)
## RMSE Rsquared MAE
## fit2 0.458 0.199 0.359
## fit5 0.502 0.038 0.389
## fit6 0.458 0.199 0.359
## fit7 0.501 0.044 0.388
## fit8 0.478 0.128 0.377
## fit9 0.469 0.162 0.370
Kontrol ettiğimizde, tüm modeller için train ve test setlerde RMSE (root mean square) ve MAE (mean absolute error) değerleri birbirlerine çok yakın, hatta bazılarında eşittir.
Bu sebeple bu değerlerden en küçük olanını, en iyi model olarak seçebiliriz.
Train Set için; Min RMSE; fit6 Max Rsquared : fit6 Min MAE : fit6
Test Set için; Min RMSE : fit2 = fit6 Max Rsquared : fit6 Min MAE : fit2 = fit6
Train ve Test set üzeri yapılan karşılaştırmada minimum hata ve maksimum R^2 sağlayan modelin fit6 modeli olduğu bulunmuştur.
fit6 modeli; bwt değişkeni için yapılacak tahminde gestation, height, weight ve smoke değişkenlerini içermekle birlikte tespit edilen aykırı/uç değerlerden bir miktar arındırılarak oluşturulmuş bir modeldir.